blosxomでTemplate Toolkitが使えるプラグインはないかと探してみたところ、mizzy.orgのttプラグインを見つけました。で、ソースを見てみたのですが、Templateモジュールの他にTemplate::Parserモジュールというのを使っており、ドキュメントに載っていない tokenise_directive
というメソッドを使っているのが気になりました。
また、ttプラグインでは「テンプレートを解析し、そこで使われている変数に対する値を適宜取得する」という方法をとっているのですが、もっとblosxomらしく、テンプレートを見ずともパッケージ変数(プラグイン変数)の値を直に取得するようなことはできないものか、と考えました。パッケージ変数をふんだんに使ってデータを遣り取りする、という点はblosxomの(異色ではありながらも)大きな特徴だと思っていたので。
そこでそういうものを自分で書いてみようと思い、色々試してできたのが以下です。
作るに際しては、シンボルテーブル、AUTOLOAD、@ISA、no strict 'refs'、動的なメソッド追加等々、普段なじみのなかったPerlの仕組みについて大いに学ぶ機会となりました。
実用Perlプログラミング たまにはAmazonアフェリエイトを使ってみたり。
Template Toolkitはとても強力なので、スクリプト側でHTMLを組まなくても、適切なデータ構造さえ用意しておけば、テンプレート側で表示の制御を柔軟に行うことができます。なのでblosxomでもとからTemplate Toolkitが使えるようになっていれば、プラグインの作成もかなり楽になりそうな気もするのですが、おそらくCGI使用可のレンタルサーバでも通常はTemplate Toolkitは入っていなさそうなのが残念なところ。そんな考えもあり、自分で使うかどうかについてはまだ保留中だったりします。