类似Jinja的JS模板语言
Jinja-like JS templating language
我真的很喜欢django/jinja2模板语言。它们的语法极其简单,但用途广泛。在javascript的语法和功能方面是否有类似之处,或者如果不是两者都有,至少在功能方面是这样。
我查看了下划线、jquery模板和胡子模板,但它们似乎都不是我想要的。
附加说明
我认为在所有的libs(我看过)中,胡子是最好的,但我真的不喜欢它的语法。例如这个胡子模板
{{#people}}
{{name}}
{{/people}}
{{^people}}
No people :(
{{/people}}
与django的模板相比:
{% for person in people %}
{{ person.name }}
{% empty %}
No people :(
{% endfor %}`
同样适用于应用过滤器。例如:
{{#filter}}{{value}}{{/filter}}
与
{{ value|filter }}
我认为django/jinja2的方法更干净,感觉更自然。
那么,有没有一个js库可以做与django/jinja非常相似的模板呢?如果没有,我想我必须接受muschache(或者其他一些好的js库——我对建议持开放态度),但这感觉不太好。
谢谢。
看看Nunjucks,一个深受Jinja2启发的JS模板引擎。它支持块继承、宏、过滤器等等,可以在服务器端(NodeJS)和客户端(大多数浏览器)工作。
我的JavaScript Jinja实现可以在这里找到:https://github.com/sstur/jinja
它同时支持Jinja和Liquid语法,在浏览器和Node中运行,将模板编译为无依赖的JavaScript,大约是3K gzipped
http://sstur.com/jinja/demo/
包括测试。Express.js支持正在进行中。。
来自@pradeek评论的链接。这是js的一个港口。
https://github.com/ericclemmons/jinja.js
编辑:不再维护
Swig是一个很棒的、类似Django/Jinja的node.js和浏览器模板引擎。
<h1>{{ pagename|title }}</h1>
<ul>
{% for author in authors %}
<li{% if loop.first %} class="first"{% endif %}>{{ author }}</li>
{% endfor %}
</ul>
您可以添加自定义标签来实现各种类型的模板语法:
{% filter %}{{value}}{% endfilter %}
{% filter 'value' %}
{{ value | filter }}
附带说明:您可以使用Django的request.is_ajax()
有条件地发回一个未渲染的Django模板,并使用Swig用JSON对象渲染它。
一个javascript模板库,旨在与django的模板语言兼容
平板
这是非常新的:angularjshttp://googledevelopers.blogspot.nl/2012/06/better-web-templating-with-angularjs-10.html
twig.js看起来也很有趣,重量比盘子还轻https://github.com/justjohn/twig.js
我已经在Python中使用了Jinja2,现在我正在Node.js平台上的另一个项目中使用jinjs。
https://github.com/ravelsoft/node-jinjs
- moment.js年份/数字格式,阿拉伯语言环境
- 选择以输出大小为优先级的编译到 JS 语言
- 帆上的自定义和多语言消息如何出错 js.
- javascript如何成为一种同步语言并在浏览器和node.js环境中异步运行
- 如何在多语言网站中翻译JS中的单词
- 如何使此循环工作?它's返回未定义的语言js
- 多语言应用程序中的Angular JS路由不起作用
- Moment.js:根据浏览器语言设置日期格式
- 类似Jinja的JS模板语言
- Chai.js:如何在语言链中正确使用“and”getter
- 为什么突出显示.js忽略了语言类
- Js 在具有多语言字符的对象中搜索
- 除了JS,其他语言是否按加载顺序执行代码
- 如何获取语言模型JS文件
- 在node中使用pdfkit.js以任何语言呈现文本
- 如何在语言js中设置电话号码的格式
- 切换网站语言JS/JON
- 如何改变当下的语言.js
- 在语言js中只重新加载一次页面
- 使用一些编程语言(JS/ c#)计算RSI(相对强度指数)