blosxom + Template Toolkit

Posted by Gosuke Miyashita Fri, 29 Apr 2005 07:45:59 GMT

interpolate_fancyプラグインは便利なのですが、HTML::TemplateTemplate 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でまわしたりするのは、正常に動作しないと思う。

Trackbacks

Use the following link to trackback from your own site:
http://blog.mizzy.org/articles/trackback/481

Comments

Leave a response

Comments