包括名称在变量中的哈巴狗过滤器

时间:2016-11-15 23:21:50

标签: node.js pug

在Pug Language reference中,有一个关于如何在.md文件上使用降价过滤器并包含它的简单示例。

include:markdown-it myfile.md

但是,我无法从名称在变量中的文件中读取数据。我希望这种语法有效:

include:markdown-it ${article}

成为var article = 'myfile.md'。但代码崩溃说它无法找到文件' $ {article}'在我的观察文件夹中。

这样做的正确方法是什么?还是只是不可能?

问候。

编辑:根据建议here,我无法按照自己的意愿行事。我找到的解决方案是首先渲染markdown文件,

function loadmd(md) {
    var fs = require('fs');
    var markdown = require('markdown-it')();
    var mdfile = fs.readFileSync(__dirname + '/mds/' + md + '.md');
    return markdown.render(mdfile.toString());
}

然后将其作为变量传递给pug渲染器:

res.render('art', {md: loadmd(req.params.article)}, function renderDone(err, html) { ... }

模板:

doctype html
html(lang=es)
head
    include htmlhead
    title !{pagetitle}
body
    include pageheader
    include pagemenu
    section
        article !{md}
    footer
        include pagefooter

0 个答案:

没有答案