Как я могу сделать уценку в jade-шаблоне express.js? - PullRequest
11 голосов
/ 15 июня 2011

Я использую Express JS Framework.У меня есть уцененная строка из базы данных, и я хочу отобразить ее как HTML в своем шаблоне Jade.Я установил разметку узла и хочу отобразить его следующим образом:

app.js

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

template.jade

- each note in todo.notes
  div= md(note.string)

Однако, это ничего не распечатывает ... какой-либо совет по этому поводу?

Спасибо!

РЕДАКТИРОВАТЬ: решил это сам, просто забылчтобы получить переменную md на мой взгляд ...

Ответы [ 5 ]

14 голосов
/ 16 июня 2011

Существует понятие «фильтры», которое отображает посетителя «компилятора» или «фильтра» для части нефритового шаблона.

Проверить: https://github.com/visionmedia/jade

filters

: sass должен иметь установленный sass.js

: у меньшего должен быть установлен less.js

: уценка должна иметь markdown-js установлен или узел-скидка

: cdata

: в coffeescript должен быть установлен кофе-скрипт

Вы используете его через этот синтаксис в шаблоне: http://jade -lang.com / ссылки / фильтры /

10 голосов
/ 16 июня 2011

Я сам нашел решение:

Проблема была в том, что я забыл передать переменную md в мое представление.чтобы запустить модуль разметки узлов, нужно выполнить следующее:

заголовок app.js

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

app.js route (передавая переменную md)

...
res.render('template', { vars: { foo: foo_.bar }, md: md, layout: false });
...

template.jade

...
div!= md(note.string)
...
6 голосов
/ 10 января 2014

Узловой модуль node-markdown устарел. помеченный является новой расширенной версией.Вы можете попробовать вот так

var md = require('marked');

Внутри вашего роутера

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

Внутри вашего нефритового шаблона

div!= md(note.string)
2 голосов
/ 30 июня 2015

Если вы используете Помечено , в своем Jade-файле вы можете сделать что-то простое:

extends layout

block content
    include:md ../../public/docs/getting-started.md
0 голосов
/ 06 февраля 2017

Вы можете использовать с пометкой , затем вы можете выполнить следующие инструкции:

app.js

app.locals.md = require('marked').setOptions({ breaks: true })

Теперь вы можете вызывать функцию каждый раз, когда захотитена шаблоне Jade, пример в вашем случае:

template.jade

- each note in todo.notes
    div!= md(note.string)
...