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
});
4

8 回答 8

4

看看EJS。允许您使用常规 HTML 并嵌入 Javascript 代码。

例如:

<div>
<% if (foo) { %>
foo
<% }else { %>
bar
<% } %>
</div>

此外,您正在寻找的是“与 Express 兼容”的模板引擎,而 EJS 与 Express 兼容。它是由 Express 背后的主要人物之一制作的。

于 2011-09-11T03:11:25.033 回答
4

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

<body>
  <h1>#{title}</h1>
  <p>#{content}</p>
</body>
于 2011-09-13T15:59:17.757 回答
3

看起来特别像的东西可能是Node.js 的Mustache 。检查演示

于 2011-09-11T03:13:55.317 回答
1

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

于 2011-09-11T01:50:32.600 回答
1

如果您已经在使用underscore.js

var compiled = _.template("hello: <%= name %>");
compiled({name : 'moe'});
=> "hello: moe"
于 2012-11-26T13:44:04.557 回答
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 语法混合使用……对于使用它的人来说可能是个问题。

于 2015-06-18T19:15:52.473 回答
0

我推荐一个新的模板引擎:Saker,它支持流畅的编码工作流程,与大多数模板语法不同,您无需中断编码即可在 HTML 中明确表示服务器块。
Github:https ://github.com/eshengsky/saker

代码如下所示:

<body>
    <h1>@title</h1>
    <p>@content</p>
</body>
于 2016-11-26T18:08:49.420 回答
0

几年来,我个人将Nunjucks与我的所有 Node JS 项目一起使用,并且仍然喜欢它。我从 Swig 切换到 Swig 是因为当项目变得更加复杂时,Swig 缺乏一些可扩展性。

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

于 2018-08-30T01:17:30.513 回答