Ответ 1
Что-то, что особенно похоже на это, вероятно, будет Усы для Node.js. Проверьте demo.
Джейд действительно очень аккуратный, но мне лично не нравится синтаксис и его внешний вид. Да, умею писать просто:
body
h1 Hello
p This is
b bold
Это круто и все, но я предпочитаю внешний вид HTML/XML. Это было сделано человеком и машиносчитываемым, и в целом я думаю, что легче взглянуть и понять.
Есть ли какие-то шаблонные модули, которые работают больше:
<body>
<h1>{title}</h1>
<p>{content}</p>
</body>
Используя ту же концепцию Джейд, как:
res.render('index', {
title:pageTitle,
content:pageContent
});
Что-то, что особенно похоже на это, вероятно, будет Усы для Node.js. Проверьте demo.
Взгляните на EJS. Позволяет использовать обычный HTML-код и вставлять Javascript-код.
Например:
<div>
<% if (foo) { %>
foo
<% }else { %>
bar
<% } %>
</div>
Кроме того, то, что вы ищете, это "Экспресс-совместимый" механизм шаблонов, а EJS является Express-совместимым. Это сделал один из главных парней из Express.
Вы можете использовать прямой HTML в Jade, попробуйте:
<body>
<h1>#{title}</h1>
<p>#{content}</p>
</body>
Рассмотрим шаблоны jQuery. Вы можете предоставить свои данные в JSON и применить его к шаблону.
Если вы уже используете underscore.js
var compiled = _.template("hello: <%= name %>");
compiled({name : 'moe'});
=> "hello: moe"
Шаблоны могут быть только вопросом вкуса. Мне не нравится Джейд, и предпочтение 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... может быть проблемой для людей, использующих его.
Я рекомендую новый механизм шаблонов: Saker, он позволяет работать с документированием рабочей среды, в отличие от большинства синтаксисов шаблонов, вам не нужно прерывать кодирование, чтобы явно обозначать серверные блоки в вашем HTML.
Github: https://github.com/eshengsky/saker
Код выглядит так:
<body>
<h1>@title</h1>
<p>@content</p>
</body>