Шаблонный движок для узла, который НЕ Джейд - PullRequest
10 голосов
/ 11 сентября 2011

Джейд действительно очень аккуратный, но лично мне не нравится синтаксис и внешний вид. Да, возможность написать просто:

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

Ответы [ 8 ]

4 голосов
/ 13 сентября 2011

Вы можете использовать прямой HTML в Jade, попробуйте:

<body>
  <h1>#{title}</h1>
  <p>#{content}</p>
</body>
4 голосов
/ 11 сентября 2011

Взгляните на EJS . Позволяет использовать обычный HTML и вставлять код Javascript.

Например:

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

Кроме того, вы ищете "Экспресс-совместимый" шаблонизатор, а EJS - Экспресс-совместимый. Это сделал один из главных ребят из Express.

3 голосов
/ 11 сентября 2011

Что-то, что особенно похоже на это, вероятно, будет Усы для Node.js.Проверьте демо .

1 голос
/ 26 ноября 2012

Если вы уже используете underscore.js

var compiled = _.template("hello: <%= name %>");
compiled({name : 'moe'});
=> "hello: moe"
1 голос
/ 11 сентября 2011

Рассмотрим jQuery шаблонов .Вы можете предоставить свои данные в формате JSON и применить их к шаблону.

0 голосов
/ 30 августа 2018

Я лично использую Nunjucks со всеми моими проектами Node JS уже несколько лет и до сих пор люблю его.Я перешел с Swig, потому что Swig не хватало некоторой расширяемости, когда проект стал более сложным.

Я тоже не фанат Jade / Pug.Я предпочитаю нормальный синтаксис HTML и внедряю несколько собственных шаблонных схем.

0 голосов
/ 26 ноября 2016

Я рекомендую новый движок шаблонов: Saker, он обеспечивает плавный рабочий процесс кодирования, в отличие от большинства синтаксисов шаблонов, вам не нужно прерывать кодирование для явного обозначения серверных блоков в вашем HTML.
Github: https://github.com/eshengsky/saker

Код выглядит так:

<body>
    <h1>@title</h1>
    <p>@content</p>
</body>
0 голосов
/ 18 июня 2015

Шаблоны могут быть только делом вкуса. Мне тоже не нравится 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 ... может быть проблемой для людей, использующих его.

...