#nunjucks #metalsmith
#nunjucks #metalsmith
Вопрос:
Я застрял с этой проблемой. Когда я использую Markdown Nunjucks, как описано в Вики-вики metalsmith-in-place, вывод неверен (см. Ниже).
Макет по умолчанию, обратите внимание на 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>amp;<!DOCTYPE htmlamp;>
amp;<html lang=amp;quot;enamp;quot;amp;>
amp;<headamp;>
amp;<meta charset=amp;quot;utf-8amp;quot;amp;>
amp;<titleamp;>Aboutamp;</titleamp;>
amp;</headamp;>
amp;<bodyamp;></p>
<h1>About</h1>
<p> amp;</bodyamp;>
amp;</htmlamp;></p>
Ответ №1:
Решается сразу после публикации вопроса. Это может быть помощь, проблема в порядке плагинов в моем 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;
});
Комментарии:
1. Круто — просто чтобы никто больше не сталкивался с этим в будущем, наличие этой информации в SO не так ценно, как подача вопроса (или даже PR), чтобы заставить сопровождающих обновлять README.md чтобы сделать это очень явным. Стоит ли это делать?
2. Я бы предположил, что вы, возможно, захотите объяснить, почему это работает. Помогло бы тем, кто придет позже.