仕事でJSのテンプレートエンジンを使う機会があって Hogan.js (http://twitter.github.io/hogan.js/ )を採用した。
mustache ( http://mustache.github.io/ ) 互換で、Twitter社製。
ロジックレスを謳っていて、テンプレート側がシンプルな見た目になるのが好印象。
覚えることが少なくて導入のコストも低かった。
#
をいろんな意味で使っていて、覚えてないとちょっとした魔法に見えるのがネックかもしれない。
テンプレート
{{#cats}} {{name}} ({{age}}{{^age}}年齢不詳{{/age}}) {{#owner}} 飼い主:{{name}} ({{age}}) {{/owner}} {{^owner}} のら猫 {{/owner}} {{/cats}}
json
{ 'cats': [ { 'name': 'たま'、 'age': 2, 'owner': { 'name': '斉藤さん' 'age': 26 } }, { 'name': 'しろ' } ] }
JS
Hogan.compile(template).render(json)
結果
たま (2) 飼い主:斉藤さん (26) しろ (年齢不詳) のら猫
青色のワンピース着てる人いたら一発で落ちると思う
— 鈴木 (@_udonchan) 2013, 9月 29