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です。
これは、最新のMENTAとNanoA共通で使えます。
これは、GitHubでtokuhiromさんが「cgi-extlib-perl」として管理しているようですが、CodeReposでもMENTA内にextlibが以前のまま存在しており、現在のところ二重管理のような状況になっています。
近いうちにどちらかにまとめてもらった方がありがたいですが
。
とりあえず、このファイルは、CodeRepos版にGitHub版を上書きして作っています。
次にMENTAです。
これは、GitHubにある最新版を取ってきて、それを解凍し再度zipしたものです。
extlibは入っていません。
最後にNanoAです。
これは、前回の記事で作った配布用の「nanoa.cgi」と最新版の「appフォルダ」、「.htaccess」、無いと怒られる「nanoa-conf.cgi」を入れました。
extlibは入っていません。
extlibを用意してから、かつ、解凍してから、ブラウザで「nanoa.cgi」にアクセスすればセットアップ画面になるでしょう。
なお、これらのファイルは、オフィシャルに最新版が用意されれば消すことになるでしょう。


コメントする