IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

MENTA::TemplateとText::MicroTemplate

      2014/05/14

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」を入れました。 extlibは入っていません。 extlibを用意してから、かつ、解凍してから、ブラウザで「nanoa.cgi」にアクセスすればセットアップ画面になるでしょう。 なお、これらのファイルは、オフィシャルに最新版が用意されれば消すことになるでしょう。

respo

respo link

ZenBackWidget

 - 情報技術について