A gulp plugin for extracting data header from file contents using gray-matter.
"See the benchmarks. gray-matter is 20-30x faster than front-matter." (@jonschlinkert)
gulp-gray-matter is a plugin for gulp, to extract data headers from file contents using gray-matter.
The extracted data is set as a property of the file object for further processing. You can customize the property name and also use nested properties (via object-path).
If the file object already has data attached on the defined property, existing data will be merged recursively with extracted data (using merge). You can define a custom function for setting data to change this behavior.
There are further custom options and of course you can also use all gray-matter options.
Install gulp-gray-matter
using npm
:
npm i gulp-gray-matter
In your gulpfile.js
:
var gulp = require('gulp'),
gulpGrayMatter = require('gulp-gray-matter');
gulp.task('default', function() {
return gulp.src('./src/**.*')
.pipe(gulpGrayMatter({ /* options */ }))
// …
.pipe(gulp.dest('./dest'));
});
A common workflow, after extracting front matter, could be using a template rendering plugin like gulp-jade.
Beside its own options, gulp-gray-matter also supports all
gray-matter options:
delims
, eval
, lang
and parser
String
Default: 'data'
The file object property for setting data. can also be a nested property name
like foo.bar.baz
.
Boolean
Default: true
Whether data header should be removed from file contents or not.
Boolean
Default: true
Whether file contents should be trimmed after removing file header or not.
(has no effect if options.remove
is false
.)
Function
Default:
function setData(oldData, newData) {
return require('merge').recursive(oldData, newData);
}
If there is already data attached to the file object on the property defined
with options.property
, existing data will be recursively merged with extracted
data. Set your own function to change this behavior.
Before version 2.2.2, @jakwings was the original author and owner of the npm package gulp-gray-matter.