blosxom plugin: num_entries_for_flavour

blosxomで色々と実験している時に、フレーバーごとに記事の数($num_entries)を変更したいという要求が湧いてきまして、探してみたところ、hail2u.net - Weblog - あるflavourだけ$num_entriesの数を変えるに記載されているoverride_num_entriesプラグインがよく使われているようでした。しかしながら、

と思ったことから、別に新しく書いてみました。

設定方法はoverride_num_entriesとほぼ同様ですが、-1 を指定することにより無制限モードとなります。

* * *

ときに、blosxomプラグインの書き方について。startサブルーチンの役割は、プラグインを動作させるかどうかを決定することにあるので、それと直接関係ない動作をあまり沢山つめこむとプログラムの見通しが悪くなるように思います(そのような例: writebackプラグイン等)。本当にstartの時点で色々と処理する必要がある場合は、別にサブルーチンを分けるのも1つの手かと。

また逆に、sub start { 1; } (常にプラグインを動作)というのもたまに見かけますが、blosxomをより効率よく動作させるためには、できるだけプラグインの動作が必要な条件を限定して、そのようにstartサブルーチンで判定する方がよいと思います。

思いつくチェック項目としては……

ちなみにnum_entries_for_flavourでは、「フレーバー名に対する値が%num_entriesハッシュに設定されていなければ動作しない」という風になっています。

my %num_entries = (
  'html' => 5,
  'rss' => 10,
);

sub start {
  defined $num_entries{$blosxom::flavour};
}