meteor pug

Jade en plantillas en Meteor



pug (5)

meteoro> = 0.8.0

Usando el paquete mquandalle:jade ha sido oficialmente recomendado .

meteoro <= 0.7.2

  1. Si no está utilizando CoffeeScript, debería verificar jade-handlebars . Al escribir estas líneas, existe un problema por el cual los archivos de plantilla de CoffeeScript deben estar envueltos dentro de una función Meteor.startup que me causó otros problemas.

  2. Si está usando CoffeeScript, debería verificar mi Cakefile . Todos los detalles están en la descripción, pero la versión corta es que agrega / elimina / actualiza automáticamente los archivos html junto con los archivos de jade. Terminé agregando *.html a mi .gitignore , que solo funciona si no estás mezclando html y jade en el mismo proyecto. Es un poco complicado, pero hasta ahora funciona bien para mí.

En las preguntas frecuentes de Meteor http://meteor.com/faq/how-do-i-package-a-new-templating-system hay información acerca de cómo agregar un sistema de plantillas diferente (que el manubrio predeterminado). Jade es el único otro ejemplo explícitamente llamado en otro lugar en los documentos.

Entonces, ¿alguien ya está trabajando en Jade? Si no, ¿es factible que comience? ¿O todavía es muy temprano? p.ej :

El paquete API está cambiando rápidamente y no está documentado, por lo que aún no puede crear sus propios paquetes. Próximamente.

He estado tratando de amar a Handlebars en mi proyecto Ember.js actual, pero para mí nada es tan elegante como Jade.


¡Acabo de hacer plantillas de jade trabajando con mis proyectos Meteor! Y es jade real, no jade-manillares o alguna forma a medias de jade. Es genial, pero necesita Meteor UI, que se encuentra actualmente en un lanzamiento de desarrollo llamado blaze-rc1. Por lo tanto, no funciona con Meteor 0.7 en este momento.

do ''mrt add jade''

&

Ejecute su proyecto de meteorito usando ''mrt --release blaze-rc1''

https://github.com/mquandalle/meteor-jade/

Si tiene archivos coffeescript y jade en la misma carpeta, agregue _ al principio del nombre del archivo para que cargue los archivos jade antes del archivo coffeescript; de lo contrario, no funcionará correctamente.



mrt add jade

en client/views/templates/hello.jade puedes hacer algo como esto:

template(name="hello") h1 hello world! {{greeting}} input(type="button" value="click")

inicia tu aplicación con mrt


Nos encantaría ver la integración de Jade. Use packages/handlebars como plantilla.

La estrategia básica es conectar el resultado del motor de plantillas en Meteor.ui.render que es la forma en que implementamos las actualizaciones de página en vivo. Siempre que su plantilla devuelva HTML, eso funcionará. Cada vez que una plantilla de Jade hace referencia a un documento Meteor.Collection o una variable de Session , Meteor registrará esa dependencia de modo que sepa volver a enviar la plantilla cuando los datos cambien.

Aún mejor, sin embargo, es también usar Meteor.ui.chunk y Meteor.ui.listChunk . Esto limitará la cantidad de recálculos que Meteor tiene que hacer cuando hay un cambio. Por ejemplo, si está procesando una lista de documentos usando {{#each}} en la {{#each}} de Handlebars, no hay ninguna razón para volver a calcular la plantilla completa cuando un nuevo documento ingresa al conjunto de resultados. Simplemente renderizamos un fragmento de HTML para el nuevo documento, e insertamos ese derecho en el DOM. Esa es la listChunk de listChunk en acción.

Por lo tanto, es probable que descubras que instrumentar solo if / a unless y for / each en Jade te lleva un largo camino hasta allí.

Solo tenga en cuenta que el desarrollo de paquetes no está tan documentado como las otras partes del sistema. Así que no dude en hacer más preguntas específicas sobre la marcha.