寻找一个 Gulp 插件,它将根据特定的 header 属性跳过降价文件
Looking for a Gulp plugin that will skip markdown files based on particular header attributes
我有这样的降价文件
---
name: Some Name
date: '2013-09-09'
isCool: true
---
really cool text
我想要一个 gulp 任务,它只允许 markdown 通过具有特定 属性 的任务,例如 isCool = true。
所以我会想象这样的事情
gulp.src('source/content/*/*.md')
.pipe(mdPrune({
isCool: true
}))
.pipe(gulp.dest('build/content/cool'));
那么只有 header 中具有 isCool 属性的 markdown 才会最终出现在 build/content/cool 文件夹中。
gulp-filter 可以。
const filter = require('gulp-filter');
gulp.task('default', function () {
// return true if want the file in the stream
const myFilter = filter(function (file) {
let contents = file.contents.toString();
return contents.match('isCool: true');
});
return gulp.src(['./src/*.md'])
.pipe(myFilter)
.pipe(gulp.dest('md'));
});
如果 isCool: true
在文件中的任何位置,这将允许文件通过。如果这是一个问题,只需使用正则表达式将其限制在 date
条目之后的行。
[过滤器也可以在任何任务之外定义,如果它可以在其他地方重复使用,或者您只是喜欢那样。
我有这样的降价文件
---
name: Some Name
date: '2013-09-09'
isCool: true
---
really cool text
我想要一个 gulp 任务,它只允许 markdown 通过具有特定 属性 的任务,例如 isCool = true。
所以我会想象这样的事情
gulp.src('source/content/*/*.md')
.pipe(mdPrune({
isCool: true
}))
.pipe(gulp.dest('build/content/cool'));
那么只有 header 中具有 isCool 属性的 markdown 才会最终出现在 build/content/cool 文件夹中。
gulp-filter 可以。
const filter = require('gulp-filter');
gulp.task('default', function () {
// return true if want the file in the stream
const myFilter = filter(function (file) {
let contents = file.contents.toString();
return contents.match('isCool: true');
});
return gulp.src(['./src/*.md'])
.pipe(myFilter)
.pipe(gulp.dest('md'));
});
如果 isCool: true
在文件中的任何位置,这将允许文件通过。如果这是一个问题,只需使用正则表达式将其限制在 date
条目之后的行。
[过滤器也可以在任何任务之外定义,如果它可以在其他地方重复使用,或者您只是喜欢那样。