如何访问由gulp-grey-matter插件创build的数据对象(使用nunjuck编译html文件时)

我正在使用nunjucks渲染作为前端JavaScript模板引擎。

我想从某些.nunjuck文件中读取正面的问题数据,然后在将.nunjuck(模板)文件编译成.html文件的同时使用这些数据。

经过一番研究,我发现吞咽灰色物质是更快更好的前端物质提取插件之一。

我的问题是:我现在如何访问前端数据对象?

例如,我会在.nunjucks文件中写下前面的内容:

--- title: Welcome to ACME Co. --- <title>{{ data.title }}</title> 

最终的HTML输出应该是:

 <title>Welcome to ACME Co.</title> 

我的gulfile.js设置如下:

 var gulp = require('gulp'), nunjucks = require('gulp-nunjucks-render') gulpGrayMatter = require('gulp-gray-matter'); gulp.task("nunjucks", function(){ return gulp.src(src/templates/**/*.+(nunjucks|njk)) .pipe(gulpGrayMatter()) //send files through gray-matter plugin to extract frontal-matter .pipe(nunjucks({ path: src/templates })) .pipe(gulp.dest(src)); }); 

默认情况下, gulp-gray-matter将所有前端数据存储在stream中每个文件的data属性中。

默认情况下gulp-nunjucks-render使用stream中每个文件的data属性中存在的data

所以你不必在你的Gulp文件中做任何事情。 这将工作:

 gulp.task('nunjucks', function(){ return gulp.src('src/templates/**/*.nunjucks') .pipe(gulpGrayMatter()) .pipe(nunjucks()) .pipe(gulp.dest('dest')); }); 

您必须正确访问.nunjuck模板中的数据:

 --- title: Welcome to ACME Co. --- <title>{{ title }}</title> 
Interesting Posts