我正在设置使用Markdown和Nunjucks,通过Gulp生成静态页面的工作流程。目前两个任务我靠,这是:使用markdown和nunjucks的吞噬工作流程
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
这编译成index.html的延伸布局/使用的应用程序index.nunjucks。 nunjucks。不过,我想用gulp pages
来从index.md中绘制frontmatter和Markdown来生成index.html的内容。
我遇到的问题是pathing:鉴于上述结构,如何通过/app/templates/pages/index.nunjucks使用/app/pages/index.md作为/app/index.html的内容?目前该任务失败,出现在Template render error: (unknown path)
。
从本质上讲,我试图延长这到底是怎么实现的:Gulp Front Matter +Markdown through Nunjucks
这确实是个问题,并且在考虑它相对于工作目录的路径是更可取的,因为路径杂耍不是必需的。感谢一个彻底的,解释清楚的答案。 – OleVik