blosxom plugin template

blosxomのプラグイン・アーキテクチャは結構わかりやすいと思うので、書きやすいとは思うのですけど、プラグインのドキュメントがひたすら読みづらく、「このサブルーチンはどんな変数を渡してくれるんだっけ?」とか忘れると読むのが非常にメンドウです。しかも、一部間違ってたりする。なので、僕はあまり考えずにプラグインを書き始めることができる様に、テンプレートを作ってます(本当はもっと日本語でコメントを入れてあったりする)。

こんなものを作っておくときっとプラグインの生産性が上がるでしょう。英語ばっかでわかりづらい場合は、それぞれのサブルーチンの各変数がどんなデータを参照しているリファレンスなのかを日本語で書いておくと良いと思います(日本語でコメントを入れておき、blosxomで使っている文字コードで保存しておくと、プラグイン・ファイルの文字コードにまつわるトラブルも避けやすかったりします)。

sub head {
  my($pkg, $currentdir, $head_ref) = @_;
  # $currentdir: $blosxom::path_infoと等価
  # $head_ref:   head.flavourの生成結果

  return 1;
}

とか、こんな感じ。

見通しが悪くなるのと、書き換えづらくなるので僕はやっていませんが、blosxomのグローバル変数の説明なんかもまとめて書いておいたりしても良いかもしれない。

プラグインのドキュメントで間違ってるところは、dateサブルーチンの例とか。第二引数の$currentdirが無いので、この例をコピペするとうまく動きません。他にもentriesサブルーチンの例で、\%othersを返していないところとかも。あと、endlastという順番でドキュメントには記載されていますが、呼ばれる順序的にはlastendです。Blog HacksのHack #65にはそんな感じで書いてありますね。

それぞれのサブルーチンの利用例などは、blosxom plugin registryで探しても良いですけど、Googleblosxom "sub entries"などと全言語のページから検索したりすると見つけやすいかと。

あとはもう経験則的なblosxomプラグインの書き方とか、Perlのお話なので、そこらへんはまぁ数をこなしてどうよ? とかそんな感じで。