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 件のコメント:
コメントを投稿