我正在設置使用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