Gulp を使用して、Markdown と Nunjucks を使用して静的ページを生成するためのワークフローの設定に取り組んでいます。このために私が依存している現在の 2 つのタスクは次のとおりです。
gulp.task('templates', function() {
return gulp.src('app/templates/pages/*.nunjucks')
.pipe(nunjucksRender({
path: ['app/templates/', 'app/templates/pages/']
}))
.pipe(gulp.dest('app'));
});
gulp.task('pages', function() {
gulp.src('app/pages/**/*.md')
.pipe(frontMatter())
.pipe(marked())
.pipe(wrap(function (data) {
return fs.readFileSync('app/templates/pages/' + data.file.frontMatter.layout).toString()
}, null, {engine: 'nunjucks'}))
.pipe(gulp.dest('app'))
});
次の構造を使用します。
/app
| index.html
|
+---css
| app.scss
| custom.scss
|
+---js
| app.js
|
+---pages
| index.md
|
\---templates
| layout.nunjucks
|
+---macros
| nav-macro.nunjucks
|
+---pages
| index.nunjucks
|
\---partials
navigation.nunjucks
これを実行するとgulp templates
、layout.nunjucks を拡張する index.nunjucks を使用して、index.html が /app にコンパイルされます。gulp pages
ただし、 index.html のコンテンツを生成するために、index.md から frontmatter と Markdown を描画するために使用したいと考えています。
私が抱えている問題はパスです: 上記の構造を考えると、/app/templates/pages/index.nunjucks を介して /app/index.html のコンテンツとして /app/pages/index.md を使用するにはどうすればよいですか? 現在、タスクは で失敗しTemplate render error: (unknown path)
ます。
基本的に、私はここで達成されたことを拡張しようとしています: Gulp Front Matter + Nunjucks による Markdown