Plantilla de motor para nodo que no es jade
-
28-10-2019 - |
Pregunta
Jade es realmente muy ordenado, pero personalmente no me gusta la sintaxis y lo mira. Sí, poder escribir solo:
body
h1 Hello
p This is
b bold
Eso es genial y todo, pero prefiero la apariencia de HTML/XML todavía. Fue hecho para ser humano y legible y, en general, creo que es más fácil mirar y comprender.
¿Hay algún motivador de plantilla que funcione más como:
<body>
<h1>{title}</h1>
<p>{content}</p>
</body>
Usando el mismo concepto de jade de:
res.render('index', {
title:pageTitle,
content:pageContent
});
Solución
Algo que se ve específicamente como eso probablemente sería Bigote para node.js. Comprobar el manifestación.
Otros consejos
Echa un vistazo a EJS. Le permite usar HTML regular e incrustar el código JavaScript.
Por ejemplo:
<div>
<% if (foo) { %>
foo
<% }else { %>
bar
<% } %>
</div>
Además, lo que está buscando es un motor de plantilla "expresa compatible", y EJS es expresa compatible. Está hecho por uno de los chicos principales detrás de Express.
Puedes usar html recto en jade, probar esto:
<body>
<h1>#{title}</h1>
<p>#{content}</p>
</body>
Considerar plantillas jQuery. Puede proporcionar sus datos en JSON y aplicarlos a una plantilla.
Si ya estás usando subrayado.js
var compiled = _.template("hello: <%= name %>");
compiled({name : 'moe'});
=> "hello: moe"
Las plantillas pueden ser solo 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 proporcionó 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 la sintaxis Angular.js ... podría ser un problema para las personas que lo usan.
Recomiendo un nuevo motor de plantilla: saker, permite el flujo de trabajo de codificación de fluidos, a diferencia de la mayoría de las sintaxis de plantilla, no necesita interrumpir su codificación para denotar explícitamente los bloques del servidor dentro de su HTML.
GitHub: https://github.com/eshengsky/saker
El código parece:
<body>
<h1>@title</h1>
<p>@content</p>
</body>
Yo personalmente uso Monjas con todos mis proyectos de nodo JS durante algunos años y aún me encanta. Cambié de Swig porque Swig faltaba algo de extensibilidad cuando un proyecto se volvió más complejo.
Yo tampoco soy fanático de Jade / Pug. Prefiero la sintaxis HTML normal e inyectar algunos esquemas de plantilla personalizados.