コミットしろYO
やっぱり、こんなリクエストがきたら、このプラグインを使って…みたいなことが YAML で書きたいなあ。。
これは、こんなリクエストがきたらというのはそれぞれのプラグイン内でやっちゃう。というのがblosxom, catlxom流です。
具体的には、startをフックしてそこでやります。このあたりはblosxomいじったことがあると違和感ないと思います。
あとデフォルトではプラグインディレクトリにプラグインを放りこむと全部有効になります。これもblosxomの流れをくんでそうなっています。
NEXT うれしいところ
plugin の初期化は駱駝なぁ。何も考えなくていい。
でも plugin つくるのはめんどくなる部分の方が多いんだよなぁ。
Plugin
NEXT やめやめ。
なんもうれしいことない。
plagger の hook 機構をぱくろう。そうしよう。
CGI版
catlxom.cgi
もつくるか。いらない子だけど、作るのは楽しそう。
Catalyst 関係なくなるがw
プラグイン周りとかライフサイクルとか
プラグインは plagger みたいに config.yaml に使うのを書くのではなくて、blosxom みたいに plugin ディレクトリに置くだけで動作、みたいな感じにしたい。
けどそうする場合の配布方法の問題。あと複数の設定を使い分けるのも面倒になる。
あと複数の設定を使い分けたいときの mod_perl 問題も。
プラグインはとりあえず NEXT 方式にした。叩かれそうw
あとライフサイクル案:
- setup
- start
- update
- filter
- sort
- render
- end
setup は起動時のみに実行され、あとはリクエスト毎に start〜end が回る。Plagger の fixedup みたいのも欲しいかもなぁ。filterでいいのかな。
これをプラグインで定義してやって、catlxom の動作を決める。
Plugin::Entry::Blosxom は setup で全エントリをロード。update で更新チェックし、更新があったものは再ロード。
Plugin::Template::TT は setup でテンプレートロード。update で更新チェック。render で Templatize。
みたいな。