如何在express.js翡翠模板中渲染markdown?

| 我使用express js框架。我有一个来自数据库的markdownified字符串,并想在我的Jade模板中将其呈现为HTML。我安装了node-markdown并想以这种方式呈现它: app.js
var md = require(\"node-markdown\").Markdown;
template.jade
- each note in todo.notes
  div= md(note.string)
但是,它没有打印出任何内容……对此有什么建议吗? 谢谢! 编辑:自己解决了它,只是忘了让md变量进入我的视图...     
已邀请:
        “过滤器”的概念是将“编译器”或“过滤器”的访问者暴露给玉器模板的一部分。 签出:https://github.com/visionmedia/jade 过滤器 :sass必须安装sass.js :less必须安装less.js :markdown必须安装了markdown-js或node-discount :cdata :coffeescript必须已安装coffee-script 您可以通过以下语法在模板中使用它: http://jade-lang.com/reference/filters/     
        我自己找到了解决方案: 问题是,我忘了将md变量传递到我的视图中。因此,要运行节点降价模块,您需要执行以下操作: app.js标头
var md = require(\"node-markdown\").Markdown;
app.js路由(传递md变量)
...
res.render(\'template\', { vars: { foo: foo_.bar }, md: md, layout: false });
...
template.jade
...
div!= md(note.string)
...
    
        不推荐使用节点模块“ 5”。标记为高级新版本。你可以这样尝试
var md = require(\'marked\');
路由器内部
res.render(\'template\', { md: md });
在您的翡翠模板中
div!= md(note.string)
    
        如果您使用的是Marked,则可以在Jade文件中执行以下操作:
extends layout

block content
    include:md ../../public/docs/getting-started.md
    
        您可以使用标记,然后可以执行以下指示: app.js
app.locals.md = require(\'marked\').setOptions({ breaks: true })
现在,您可以随时在模板翡翠上调用该函数,例如: template.jade
- each note in todo.notes
    div!= md(note.string)
    

要回复问题请先登录注册