MENTAを追いかける絡みでNanoAにも手を出しましたが、もし、今からこれらのフレームワークに入門(あるいは再入門)するのであれば、とりあえず最新版(MENTAは0.14、NanoAは0.17)にしたほうが良いでしょう。
というのは、これらの最新版で使われているテンプレートエンジンはText::MicroTemplateですが、それ以前のものはMENTA::Templateが使われています。
それに伴って、若干ですが文法にも違いがあります。
なので、古いMENTAやNanoAで作ったプログラムは、最新版ではエラーによって動かない場合があります。
文法の大きな違いは、HTMLエスケープについてです。
テンプレートファイルに埋め込んだPerlの出力は、デフォルトでHTMLエスケープされることになっています。これは、セキュリティと利便性が大きく関与しています。
参考:Kazuho@Cybozu Labs: Text::MicroTemplate - テンプレートエンジンのセキュリティと利便性
エスケープしないようにするには、以前は次のようにしていました。(タグ形式の場合)
|
|
しかし、Text::MicroTemplateを使用している最新版のMENTAやNanoAでは以下のようにします。
|
|
ただ、これは正式にアナウンスされていない(?)ようですし、また、最新版のアーカイブもオフィシャルからは案内されていません。
もちろん、最新のソースを手に入れることはできます。
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」を入れました。