2011-09-11 6 views
10

Jade es de hecho muy limpio, pero personalmente no me gusta la sintaxis y el aspecto del mismo. Sí, ser capaz de escribir simplemente:Templating Engine para Node que NO es Jade

body 
    h1 Hello 
    p This is 
    b bold 

Eso es genial y todo, pero yo prefiero el aspecto y la sensación de HTML/XML todavía. Fue hecho para ser humano y legible por máquina y, en general, creo que es más fácil mirar y entender.

¿Hay motores de plantillas que funcionan más como:

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

Utilizando el mismo concepto de Jade como:

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

Respuesta

3

Algo que específicamente se ve así probablemente sería Mustache para Node.js. Compruebe el demo.

+0

también, [Manillares] (http://www.handlebarsjs.com/). Sintaxis similar a Moustache, pero un poco más poderosa. – MartinodF

+0

Me gusta esto hasta ahora. Alguien más abajo dijo que puedes usar Jade con HTML aunque. así que revisando eso también. –

+0

I segundos manubrios. Se basa en Moustache, pero la adición de ayudantes es insustituible en mi opinión. – Mike

1

Considere jQuery templates. Puede proporcionar sus datos en JSON y aplicarlos a una plantilla.

4

Eche un vistazo a EJS. Le permite usar código HTML regular e incrustar código JavaScript.

Por ejemplo:

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

Además, lo que estás buscando es un motor "Express-compatible" de plantillas, y EJS es compatible-Express. Está hecho por uno de los tipos principales detrás de Express.

4

Puede usar HTML directamente en Jade, le daría prueba:

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

¡Oh, bien! Debo probar esto. –

1

Si ya está utilizando underscore.js

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

plantillas puede ser sólo una cuestión de gusto. Tampoco me gusta Jade y favorecer HTML es una mejor opción. La mayoría de las veces, los diseños de diseño web no se pueden convertir fácilmente a esas plantillas.

la muestra proporcionada bigote:

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

Se puede mezclar con angularjs sintaxis ... podría ser un problema para las personas que lo usan.

0

Recomiendo un nuevo motor de plantillas: Saker, habilita el flujo de trabajo de codificación fluida, a diferencia de la mayoría de las sintaxis de plantillas, no necesita interrumpir su codificación para indicar explícitamente bloques de servidores dentro de su HTML.
Github: https://github.com/eshengsky/saker

El código es el siguiente:

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