2015-09-27

Nunjucks

愛用していたテンプレートエンジンであるSwigが残念ながら開発終了となっていたので、Nunjucksへ引っ越しをした。

これはSwigの作者が代替として推薦しているMozillaのプロジェクトで、構文が類似しており乗り換えも用意であった。

1{% extends "base.html" %} 2{% block header %} 3<h1>{{ title }}</h1> 4{% endblock %} 5{% block content %} 6<ul> 7 {% for name, item in items %} 8 <li>{{ name }}: {{ item }}</li> 9 {% endfor %} 10</ul> 11{% endblock %}

Swigと比較してドキュメントも見やすく、機能も充実、パフォーマンスも良好である。Swigはif条件式を埋め込む際に何故かelseをサポートしておらず、やや冗長な記述を強いられていたが、Nunjucksは当然対応しており見渡しが良くなった。

Jijja2というPythonのテンプレートエンジンの影響を受けているらしく、ドキュメントもちょくちょくJinja2のドキュメントに飛ばされたり、issueを眺めていてもJinja2の機能を基準に実装を決めている節があり、謎のJinja愛がほほえましかった。