2012/04/03

まともなJavaScriptテンプレートエンジンを使うの巻

JavaScriptのテンプレートエンジンというと、今までは「とりあえず%%VARIABLE%%とか書いておいて、ハッシュの対応表と置換させる」か、ちょっと要件が大きくなると「Ajax Pages」を使っていた。Ajax Pagesは素のJavaScriptをテンプレート中に書けるのでなんでもできて、自分だけの開発用には便利なのだ。

しかし、もうすこしテンプレートとロジックを切り離したくなった。当然のニーズだけど。かといってDOMベースで記述するとかコンパイルが必要とかいうのは敷居が高すぎるのでパス。論理記述はSmartyくらい、フィルタがあって、JSONのオブジェクトをかんたんに受け渡せるもの希望。あと、ヘルパーメソッドをプログラマ側で柔軟に追加できるものが好ましい。

ということで見つけたのが「Jarty」。これ、極端にイイというわけではないけれど、ちょうどしっくりくる感じ。Smarty構文はほぼほぼ再現されている。オブジェクトは個別にassignしなくてもまとめて受け渡せる。そして、フットプリントがてごろでフィルタおよび関数の拡張方法が明記されているため、ちょっとコード読むだけで必要なものを追加できてしまう。

おかげでずいぶん見通しのいいコードになった。

おまけでついてるパーサデバッガがおもしろかった。おいら、ここらへんの構文解析部分、まじめに実装したことないからなー。ちゃんとやらなきゃ!

てゆーか、そもそも単純置換で済ませるのが手抜き過ぎだな。そこから習慣を変えましょう。