interpolate_fancyプラグインは便利なのですが、HTML::TemplateやTemplate Toolkitに慣れているとなんか物足りないし、やはり慣れた記法で記述したいですよね。
で、探してみるとblosxomでHTML::Templateを使うためのプラグインを見つけましたが、Template Toolkitに対応したものはないようです。
個人的にはHTML::Templateもシンプルで好きなのですが、Template Toolkitの柔軟性も捨てがたいので、Template Toolkit対応プラグインを作ってみました。ttプラグイン
通常であれば、
$plugin::variable
と記述するところを、
[% plugin.variable %]
と記述します。package blosxomの変数であれば、
[% blosxom.variable %]
でも、
[% variable %]
でもOKです。
blosxom.cgi中のinterpolateサブルーチンの内容もこのプラグインに含まれてますので、本来の
$plugin::variable
という記述でもちゃんと処理します。
IF, UNLESSはちゃんと動作してるようですが、他のディレクティブはどうなるか試していません。
HTML::Templateであれば、paramメソッドを利用して、テンプレートで使われているパラメータリストを取得できるのですが、Template Toolkitでは同様のことができるメソッドがないようで、Template::Parserのtokenise_directiveメソッドで分解したtokenを正規表現で処理してパラメータを取得しています。IF, UNLESS以外のディレクティブがちゃんと動作するかどうかは、ここの処理にかかってるわけですが、たぶん、複雑なデータ構造のものをFOREACHでまわしたりするのは、正常に動作しないと思う。