Jade确实非常整洁,但我个人不喜欢它的语法和外观。是的,只能写:
body
h1 Hello
p This is
b bold
这很酷,但我更喜欢HTML / XML的外观和感觉。它被认为是人类和机器可读的,总的来说,我认为更容易看一眼并理解。
是否有任何模板引擎更像是:
<body>
<h1>{title}</h1>
<p>{content}</p>
</body>
使用相同的Jade概念:
res.render('index', {
title:pageTitle,
content:pageContent
});
答案 0 :(得分:4)
看看EJS。允许您使用常规HTML并嵌入Javascript代码。
例如:
<div>
<% if (foo) { %>
foo
<% }else { %>
bar
<% } %>
</div>
此外,您正在寻找的是“Express兼容”模板引擎,EJS与Express兼容。它是由Express背后的主要人物之一制作的。
答案 1 :(得分:4)
您可以在Jade中使用直接HTML,尝试一下:
<body>
<h1>#{title}</h1>
<p>#{content}</p>
</body>
答案 2 :(得分:3)
答案 3 :(得分:1)
考虑jQuery templates。您可以使用JSON提供数据并将其应用于模板。
答案 4 :(得分:1)
如果您已使用underscore.js
var compiled = _.template("hello: <%= name %>");
compiled({name : 'moe'});
=> "hello: moe"
答案 5 :(得分:0)
模板只是品味问题。我也不喜欢Jade,喜欢HTML是一个更好的选择。 大多数情况下,网页设计布局无法轻易转换为这些模板。
示例提供胡子:
<h1>{{header}}</h1>
{{#bug}}
{{/bug}}
{{#items}}
{{#first}}
<li><strong>{{name}}</strong></li>
{{/first}}
{{#link}}
<li><a href="{{url}}">{{name}}</a></li>
{{/link}}
{{/items}}
{{#empty}}
<p>The list is empty.</p>
{{/empty}}
它可以与Angular.js语法混合......对于使用它的人来说可能是一个问题。
答案 6 :(得分:0)
我推荐一个新的模板引擎:Saker,它支持流体编码工作流程,与大多数模板语法不同,您无需中断编码即可明确表示HTML中的服务器块。
Github:https://github.com/eshengsky/saker
代码如下:
<body>
<h1>@title</h1>
<p>@content</p>
</body>
答案 7 :(得分:0)
几年来,我个人在所有Node JS项目中都使用Nunjucks,但仍然喜欢它。我之所以选择Swig,是因为当项目变得更加复杂时,Swig缺乏一些可扩展性。
我也不喜欢Jade / Pug。我更喜欢普通的HTML语法,并注入一些自定义的模板方案。