template programacion jade handlebars for engines javascript jquery jinja2 template-engine language-comparisons

javascript - programacion - Lenguaje de plantillas de JS al estilo de Jinja



programacion pug (8)

una biblioteca de plantillas javascript, destinada a ser compatible con el lenguaje de plantillas de django

Plate

Realmente me gustan los lenguajes de plantillas django / jinja2. Su sintaxis es extremadamente simple y sin embargo es muy versátil. ¿Hay algo similar a eso en la sintaxis y la capacidad en javascript, o si no ambos, al menos en la capacidad.

Miré guiones bajos, plantillas jQuery y plantillas de bigote, y ninguna de ellas parecía ser lo que estaba buscando.

Notas adicionales

Creo que de todas las libretas (que miré) el bigote es el mejor, pero realmente no me gusta la sintaxis. Por ejemplo esta plantilla de bigote

{{#people}} {{name}} {{/people}} {{^people}} No people :( {{/people}}

En comparación con las plantillas de django:

{% for person in people %} {{ person.name }} {% empty %} No people :( {% endfor %}`

También lo mismo para aplicar filtros. Por ejemplo:

{{#filter}}{{value}}{{/filter}}

vs

{{ value|filter }}

Creo que el enfoque django / jinja2 es más limpio y se siente más natural.

Entonces, ¿hay alguna biblioteca js que haga plantillas muy similares a django / jinja? Si no, creo que tengo que vivir con muschache (o tal vez con alguna otra buena biblioteca de js, estoy abierto a sugerencias), pero no me parece bien.

Gracias.


Eche un vistazo a Nunjucks , un motor de plantillas JS inspirado en gran medida por Jinja2. Admite la herencia de bloques, macros, filtros y mucho más, y funciona tanto en el servidor (NodeJS) como en el lado del cliente (la mayoría de los navegadores).





La implementación de mi JavaScript Jinja se puede encontrar aquí: https://github.com/sstur/jinja

Es compatible con la sintaxis de Jinja y Liquid, se ejecuta en el navegador y en Node, compila las plantillas para JavaScript sin dependencias, y se trata de 3K gzipped

http://sstur.com/jinja/demo/

Pruebas incluidas. Soporte de Express.js en curso ..



Swig es un increíble motor de plantillas tipo Django / Jinja para node.js y el navegador.

<h1>{{ pagename|title }}</h1> <ul> {% for author in authors %} <li{% if loop.first %} class="first"{% endif %}>{{ author }}</li> {% endfor %} </ul>

Puede agregar etiquetas personalizadas para lograr varios tipos de sintaxis de plantillas:

{% filter %}{{value}}{% endfilter %} {% filter ''value'' %} {{ value | filter }}

Nota al margen: puede usar request.is_ajax() Django para devolver condicionalmente una plantilla Django sin procesar y usar Swig para renderizarla con un objeto JSON.