使用Jade:markdown过滤器时是否可以包含外部文件?

时间:2013-12-29 17:36:59

标签: javascript node.js express markdown pug

我正在构建一个Express.js Node应用程序并使用Jade模板。 Jade提供了一个:markdown过滤器,可以在Jade中嵌入Markdown代码:

h1 This is Jade
:markdown
  ## And this is Markdown
h3 Back in Jade

(注意:为了使用此过滤器,您必须安装Markdown引擎,例如npm install marked --save。您的Express应用程序中没有require()此模块,但它必须安装。)

因此,在Jade中嵌入Markdown工作正常。但是,我想将Markdown保存在单独的文件中,并将它们动态地包含在Jade模板中。我试过这个并不起作用:

:markdown
  include ../path/to/markdown/file.md

include命令被视为源代码,而不是被解释为命令。是否可以从:markdown过滤器中的外部文件中注入Markdown?

请不要提供解决方法!我知道如何解决此问题。我想知道:markdown过滤器是否与外部Markdown文件兼容。

3 个答案:

答案 0 :(得分:23)

您可以使用:md过滤器修饰符包含markdown文件。

例如

html
  body
    include:md ../path/to/markdown/file.md

语言参考:https://pugjs.org/language/includes.html#including-filtered-text

答案 1 :(得分:0)

:md修饰符对我来说也不起作用,但这可行:

html
  body

    // works:

    include file.md

    //- does not work:

    include:markdown file.md
    include:md file.md

我正在使用带有HTML5 Boilerplate模板的docpad。

您还应该考虑不包括*.html.jade这类包含{{1}}文件的自动生成问题:

How to auto-generate html from jade file when only included markdown file has changed in livereload development environment?

答案 2 :(得分:0)

首先,运行以下命令:

npm install marked --save

然后,执行以下操作:

include:md ../path/to/markdown/file.md