2011-09-11 7 views
10

Jade è davvero molto pulito, ma personalmente non mi piace la sintassi e il suo aspetto. Sì, essendo in grado di scrivere solo:Templating Engine for Node che NON è Jade

body 
    h1 Hello 
    p This is 
    b bold 

Questo è fresco e tutto, ma io preferisco il look and feel di HTML/XML ancora. È stato creato per essere umano e leggibile dalla macchina e, nel complesso, penso che sia più facile dare un'occhiata e capire.

Esistono motori di templating che funzionano più come:

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

utilizzando lo stesso Jade come concetto di:

res.render('index', { 
    title:pageTitle, 
    content:pageContent 
}); 

risposta

3

Qualcosa che in particolare sembra che sarebbe probabilmente Mustache per Node.js. Controlla il demo.

+0

anche, [Manubrio] (http://www.handlebarsjs.com/). Sintassi simile a Moustache, ma leggermente più potente. – MartinodF

+0

Mi piace fino ad ora. Qualcuno di seguito ha detto che puoi usare Jade con HTML tho. quindi controllalo anche tu. –

+0

I secondi manubri. Si basa su Mustache, ma l'aggiunta di aiutanti è insostituibile secondo me. – Mike

1

Considerare jQuery templates. Puoi fornire i tuoi dati in JSON e applicarli a un modello.

4

Dai uno sguardo allo EJS. Ti consente di utilizzare codice HTML standard e codice JavaScript incorporato.

Ad esempio:

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

Inoltre, quello che state cercando è un motore di template "Express-compatibile", ed è compatibile EJS-Express. È fatto da uno dei ragazzi principali dietro Express.

4

È possibile utilizzare direttamente HTML in Jade, dare una prova:

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

Oh, bello! Devo provare questo. –

1

Se stai già utilizzando underscore.js

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

I modelli possono essere solo una questione di gusti. Neanche a me piace Jade e preferire l'HTML è un'opzione migliore. Molte volte, i layout webdesign non possono essere facilmente convertiti in quei modelli.

campione baffi fornito:

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

Può essere miscelato con Angular.js sintassi ... potrebbe essere un problema per chi lo utilizza.

0

Raccomando un nuovo motore di template: Saker, abilita il workflow della codifica dei fluidi, a differenza della maggior parte delle sintassi dei template, non è necessario interrompere la codifica per indicare esplicitamente i blocchi del server all'interno del codice HTML.
Github: https://github.com/eshengsky/saker

Il codice si presenta come:

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