Pug - 包含带有嵌入式 HTML 的 Markdown 文件

Pug - Include a Markdown File with Embedded HTML

进入正题

有没有办法让 Pug 在 Markdown 文件中包含嵌入的 HTML 作为实际 HTML 的一部分,而不是简单的纯文本?

详情

我有一个使用 jstransformer-markdown-it 过滤器的 Pug 模板。输入的 Markdown 文件已嵌入 HTML。该 Markdown 文件看起来像这样 (video.md)

# Watch this video!

This video demonstrates *the power of something something*.

<iframe width="560" height="315" src="https://www.youtube.com/..." frameborder="0" allowfullscreen></iframe>

More Markdown here.
----------------

加载此 Markdown 文件的模板如下所示 (entry.pug)

html
  include head.pug

  body
    header Article

    div(id="main")
      article
        include:markdown-it video.md

然后像这样通过 Express 送达 (index.js)。

const express = require('express');
const app = express();
app.set('view engine', 'pug');

app.get('/', (req, res) => {
  res.render('entry');
}

app.listen(3000);

在浏览器中加载此内容时,文件中的大部分 Markdown 已成功转换为 HTML。然而,嵌入的标记(在本例中为 iframe)作为纯文本插入。

有没有办法让 Pug 将嵌入的 HTML 作为实际 HTML 的一部分而不仅仅是文本包含在 Markdown 文件中?

有办法,但没有记录! https://github.com/pugjs/pug/issues/2200

改变include:markdown-it(html)

您还可以安装 markdown-it 插件,并将它们包含在例如include:markdown-it(plugins=['markdown-it-decorate'])

我还没有找到默认打开插件的方法,所以你需要把它们放在每个 pug include 中。