Michael Kerrin 创建了一个名为pwt.jinja2js的项目
项目描述:
pwt.jinja2js 是 Jinja2 模板引擎的扩展,可将包含宏的有效 Jinja2 模板编译为 JavaScript。JavaScript 输出可以通过脚本标签包含,也可以添加到应用程序 JavaScript。
如文档中所述
通过滑动开关,我们可以生成利用闭包库的 Java 脚本并生成以下内容:
Jinja2:
{% 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();
}