gpt4 book ai didi

Gulp Front Matter + Markdown 通过 Nunjucks

转载 作者:行者123 更新时间:2023-12-04 14:26:05 25 4
gpt4 key购买 nike

我正在努力为我的 Gulp 流程添加一些简单的 Markdown 处理,但我无法让这些部分协同工作。我似乎错过了获取前端内容和确定应用哪个 Nunjuck 模板之间的步骤。

这是我的 Gulp 文件中的部分:

gulp.task('pages:md', function() {
gulp.src('./content/**/*.md')
.pipe(frontMatter({ // optional configuration
property: 'frontMatter', // property added to file object
remove: true // should we remove front-matter header?
}))
.pipe(marked({
// optional : marked options
}))
.pipe(nunjucks({
// ?? Feels like I need to specify which template applies based on the front matter "layout" property?
}))
.pipe(gulp.dest('build/'))
});

Markdown 文件如下所示:
---
title: Title
layout: layout.html
nav_active: home
---

...markdown content...

我觉得它正在朝着正确的方向发展,但能否可视化前端数据的去向,以及如何将其暴露给 Nunjucks 渲染,尚不清楚。有什么帮助吗?

最佳答案

您需要 gulp-wrap和原创 nunjucks .

gulp-nunjucks 是一个用于编译 nunjucks 模板流的工具,但是您需要做的是将您的内容包装在 nunjucks 模板中,这就是 gulp-wrap 的用途。

试试 npm install gulp-wrap nunjucks除了其他设置,然后以下应该工作。

gulp 文件

var gulp = require('gulp')
var wrap = require('gulp-wrap')
var frontMatter = require('gulp-front-matter')
var marked = require('gulp-marked')

var fs = require('fs')

gulp.task('pages:md', function() {
gulp.src('./content/**/*.md')
.pipe(frontMatter())
.pipe(marked())
.pipe(wrap(function (data) {
return fs.readFileSync('path/to/layout/' + data.file.frontMatter.layout).toString()
}, null, {engine: 'nunjucks'}))
.pipe(gulp.dest('build/'))
});

Markdown
---
title: Title
layout: layout.nunjucks
nav_active: home
---

...markdown content...

layout.nunjucks
<h1>{{ file.frontMatter.title }}</h1>

<p>{{ contents }}</p>

关于Gulp Front Matter + Markdown 通过 Nunjucks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com