Michael Kerrin は、 pwt.jinja2jsというプロジェクトを作成しました。
プロジェクトの説明:
pwt.jinja2js は、マクロを含む有効な Jinja2 テンプレートを JavaScript にコンパイルする Jinja2 テンプレート エンジンの拡張機能です。JavaScript の出力は、script タグを介して含めるか、アプリケーションの JavaScript に追加することができます。
ドキュメントに記載されているように
スイッチを入れることで、Closure Library を利用して以下を生成する Java Script を生成できます。
ジンジャ2:
{% namespace ns1 %}
{% macro printusers(users) %}
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
{% endmacro %}
なる:
goog.provide('ns1');
goog.require('soy');
ns1.printusers = function(opt_data, opt_sb) {
var output = opt_sb || new soy.StringBuilder();
output.append('\n<ul>\n');
var userList = opt_data.users;
var userListLen = userList.length;
for (var userIndex = 0; userIndex < userListLen; userIndex++) {
var userData = userList[userIndex];
output.append('\n <li><a href="', userData.url, '">', userData.username, '</a></li>\n');
}
output.append('\n</ul>\n');
if (!opt_sb) return output.toString();
}