blosxom plugin: tt2

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は入っていなさそうなのが残念なところ。そんな考えもあり、自分で使うかどうかについてはまだ保留中だったりします。