首页 > 解决方案 > Metalsmith 没有逃脱 Markdown + Nunjucks 的输出

问题描述

我被这个问题困住了。当我按照metalsmith-in-place Wiki 中的说明使用 Markdown + Nunjucks 时,输出是错误的(见下文)。

默认布局,注意safe过滤器(_layouts/base.njk):

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="utf-8">
    <title>{{title}}</title>
  </head>
  <body>
    {{ contents | safe }}
  </body>

使用 Markdown + Nunjucks ( about.md.njk) 的模板:

---
title: About
layout: base.njk
---

# {{ title }}

输出:

<p>&lt;!DOCTYPE html&gt;
  &lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;About&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;</p>

<h1>About</h1>

<p>  &lt;/body&gt;
&lt;/html&gt;</p>

标签: nunjucksmetalsmith

解决方案


发布问题后立即解决。这可能会有所帮助,问题是我的插件顺序build.js

Metalsmith(__dirname)
  .source('./contents')
  .destination('./build')
  .clean(true)
  .use(inPlace()) // inPlace must come BEFORE layouts!
  .use(layouts({
    directory: '_layouts',
    default: 'base.njk'
  }))
  .build(function(err) {
    if (err) throw err;
  });

推荐阅读