MENTA::TemplateとText::MicroTemplate

2009年3月21日
| コメント(0) | トラックバック(1) MENTA::TemplateとText::MicroTemplate

MENTAを追いかける絡みでNanoAにも手を出しましたが、もし、今からこれらのフレームワークに入門(あるいは再入門)するのであれば、とりあえず最新版(MENTAは0.14、NanoAは0.17)にしたほうが良いでしょう。

というのは、これらの最新版で使われているテンプレートエンジンはText::MicroTemplateですが、それ以前のものはMENTA::Templateが使われています。
それに伴って、若干ですが文法にも違いがあります。
なので、古いMENTAやNanoAで作ったプログラムは、最新版ではエラーによって動かない場合があります。

文法の大きな違いは、HTMLエスケープについてです。
テンプレートファイルに埋め込んだPerlの出力は、デフォルトでHTMLエスケープされることになっています。これは、セキュリティと利便性が大きく関与しています。

参考:Kazuho@Cybozu Labs: Text::MicroTemplate - テンプレートエンジンのセキュリティと利便性

エスケープしないようにするには、以前は次のようにしていました。(タグ形式の場合)

<?=r $hoge ?>

しかし、Text::MicroTemplateを使用している最新版のMENTAやNanoAでは以下のようにします。

<?= raw_string($hoge) ?>

ただ、これは正式にアナウンスされていない(?)ようですし、また、最新版のアーカイブもオフィシャルからは案内されていません。

もちろん、最新のソースを手に入れることはできます。
MENTAはGitHubから「Download」できますし、NanoAは以前の記事のとおりCodeReposからチェックアウトして手に入れます。

とはいえ、なかなか面倒だと思いますので、勝手にアーカイブを用意しました。

まずはextlibです。

extlib-20090320.zip

これは、最新のMENTAとNanoA共通で使えます。
これは、GitHubでtokuhiromさんが「cgi-extlib-perl」として管理しているようですが、CodeReposでもMENTA内にextlibが以前のまま存在しており、現在のところ二重管理のような状況になっています。
近いうちにどちらかにまとめてもらった方がありがたいですが…。
とりあえず、このファイルは、CodeRepos版にGitHub版を上書きして作っています。


次にMENTAです。

menta-20090320.zip

これは、GitHubにある最新版を取ってきて、それを解凍し再度zipしたものです。
extlibは入っていません。


最後にNanoAです。

nanoa-20090320.zip

これは、前回の記事で作った配布用の「nanoa.cgi」と最新版の「appフォルダ」、「.htaccess」、無いと怒られる「nanoa-conf.cgi」を入れました。
extlibは入っていません。
extlibを用意してから、かつ、解凍してから、ブラウザで「nanoa.cgi」にアクセスすればセットアップ画面になるでしょう。


なお、これらのファイルは、オフィシャルに最新版が用意されれば消すことになるでしょう。

トラックバック(1)

このブログ記事に対するトラックバックURL:

このブログ記事を参照しているブログ一覧:

日曜プログラマのそゞろ事 - Text::MicroTemplateの秘密 (2009年3月24日 22:50)

Text::MicroTemplateのソースを見ててわかりましたが、CPANオ... 続きを読む

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2009年3月21日 04:24に書いたブログ記事です。

ひとつ前のブログ記事は「CodeRepos版NanoAをWindowsで動かす方法」です。

次のブログ記事は「Kansai.pm第11回ミーティングに行ってきました」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type