Pasar el texto bruto de Markdown a Jade

Estoy jugando con mi primera aplicación Node.js Express , y como todos los progtwigdores saben, ¡lo primero que debe construir al probar un nuevo marco es un blog! De todos modos, me gustaría escribir los artículos en Markdown y luego mostrarlos en la vista. Vi que Jade permite que esto se haga dentro de la vista misma, usando filtros, pero no puedo hacer que eso funcione.

Para simplificar la situación, aquí hay un ejemplo de lo que estoy hablando.

//app.js res.render("article", { md : "Hello World!\n\n*Woo*" }); //article.jade section :markdown #{md} 

Pero, eso produce esto:

{md}

… no está sustituyendo en las variables que le he pasado.

Entonces intenté esto:

 //article.jade section :markdown !{md} 

Y la salida es esta:

 

Hello World! *Woo*

Por lo tanto, ahora no está analizando la rebaja!

He podido hacer que esto funcione analizando la reducción en el archivo app.js y luego pasando el HTML a la vista para mostrar, pero no sé, eso parece un poco más desordenado.

¿Hay alguna forma de pasar variables a los filtros de Jade?

Puedes hacer esto con una función pasada a jade desde el nodo:

 var md = require("node-markdown").Markdown; 

Luego pásalo en la vista como un local:

 res.render('view', { md:md, markdownContent:data }); 

Luego renderízalo en la vista de jade llamando a la función:

 != md(markdownContent) 

El módulo de node-markdown está en desuso. El marcado es la nueva versión avanzada. Puedes probar así

 var md = require('marked'); 

Dentro de tu enrutador

 res.render('template', { md: md }); 

Dentro de tu plantilla de jade

 div!= md(note.string) 

No creo que Jade pueda hacer esto fuera de la caja. Una forma de lograrlo que puede parecer un poco más limpio que la representación previa de la reducción es crear una función de ayuda llamada markdown que tome una cadena de reducción y devuelva HTML. Entonces podrías hacer algo como

 section != markdown(md) 

La función de reducción de valores debe incluirse en los datos locals cuando se procesa la plantilla de jade y puede usar directamente una biblioteca de descuentos para convertir la syntax de reducción de valores a HTML.

Si está utilizando el soporte de Scalate’s Jade , puede ingresar:

 section :&markdown #{md} 

También puedes importar archivos externos con:

 section :&markdown #{include("MyFile.md")}