Node.js的模板引擎,不使用Jade

10

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
});
8个回答

4
你可以在Jade中使用纯HTML,试试这个:

您可以在Jade中使用纯HTML,试一试:

<body>
  <h1>#{title}</h1>
  <p>#{content}</p>
</body>

4
请看EJS,它允许你使用常规的HTML并嵌入JavaScript代码。
例如:
<div>
<% if (foo) { %>
foo
<% }else { %>
bar
<% } %>
</div>

此外,您正在寻找的是“Express兼容”的模板引擎,而EJS就是Express兼容的。它由Express的主要开发者之一制作。

3

如果你想寻找一个看起来就像这样的东西,那么可能是针对Node.js的Mustache模板引擎。请查看演示


另外,还有Handlebars。它与Mustache具有类似的语法,但稍微更加强大。 - MartinodF
我到目前为止很喜欢这个。下面有人说可以将Jade与HTML一起使用,所以也在研究它。 - Oscar Godson
我也推荐使用Handlebars。它是在Mustache的基础上构建的,但是它添加的helpers功能在我看来是不可替代的。 - Mike

1

如果您已经在使用underscore.js

var compiled = _.template("hello: <%= name %>");
compiled({name : 'moe'});
=> "hello: moe"

1
考虑使用jQuery模板。您可以将数据以JSON格式提供,并应用于模板。

0

模板只是一种口味问题。我也不喜欢Jade,更喜欢HTML。 大多数情况下,网页设计布局不能轻易转换为这些模板。

提供的示例是Moustache:

<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语法混合使用...这可能会对使用它的人造成问题。


0

我推荐一款新的模板引擎:Saker,它可以实现流畅的编码工作流程。与大多数模板语法不同的是,在HTML中,您无需中断编码来显式地表示服务器块。
Github: https://github.com/eshengsky/saker

代码如下:

<body>
    <h1>@title</h1>
    <p>@content</p>
</body>

0

我个人在所有的Node JS项目中都使用Nunjucks已经有几年了,仍然非常喜欢它。我从Swig转换过来是因为当项目变得更加复杂时,Swig在某些可扩展性方面存在不足。

我也不是Jade / Pug的粉丝。我更喜欢普通的HTML语法,并注入一些自定义的模板方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接