仕事で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