寻找一个 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 条目之后的行。

[过滤器也可以在任何任务之外定义,如果它可以在其他地方重复使用,或者您只是喜欢那样。