2004年2月23日月曜日

Template::Toolkitのフィルター機能に感動


Perlのテンプレートエンジンとして有名なものと言えばHTML::TemplateとTemplate::Toolkitがあげられると思いますが、最初に覚えたのがHTML::Templateだったこともあり、今まではそれを使っていました。HTML::Templateはテンプレートからロジックを一切省いたことにより、非常にお手軽に利用できるのですが、ロジックを省いたが故にビュー側で完結してほしい処理(改行コードを<BR>に変換するとかHTMLタグのエスケープとか)をロジックに書かないとといけません。これでは美しいコードは書けない(笑)ということで、より柔軟なテンプレートエンジン、Template::Toolkitを使ってみました。


Template::Toolkitにはフィルター機能がついてまして、これを使うと、改行コードを<BR>に変換しろ、とかHTMLタグのエスケープしろという命令をテンプレートに記述できます。フィルター機能についてはTemplate Toolkit Manual: Filtersに詳しく書いてありますが、例えば、

[% foo | html %]


でfooの中身のHTMLタグをエスケープして出力してくれますし、

[% bar  | html_line_break %]


でbarの中身の改行コードを<BR />に変換して出力してくれます。他にもurlとかtruncateといったフィルターも使えそうです。恐ろしく便利で多機能なTemplate::Toolkitにもうメロメロです。

0 件のコメント:

コメントを投稿