Skip to content

A gulp plugin for extracting data header from file contents using gray-matter.

License

Notifications You must be signed in to change notification settings

rojo2/gulp-gray-matter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gulp-gray-matter

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)

npm Package Version MIT License Travis Build Status Codecov Test Coverage Dependencies Status devDependencies Status



About

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.

Setup and usage

Install gulp-gray-matter using npm:

npm i gulp-gray-matter

In your gulpfile.js:

import gulp from 'gulp'
import loadPlugins from 'gulp-load-plugins'

const plugins = loadPlugins()

gulp.task('default', function() {
  return gulp.src('./src/**.*')
    .pipe(plugins.grayMatter({ /* options */ }))
    // …
    .pipe(gulp.dest('./dest'));
});

A common workflow, after extracting front matter, could be using a template rendering plugin like gulp-jade.

Options

Beside its own options, gulp-gray-matter also supports all gray-matter options: delimiters, excerpt, excerpt_separator and language.

engines is currently not supported.

property

String

Default: 'data'

The file object property for setting data. can also be a nested property name like foo.bar.baz.

remove

Boolean

Default: true

Whether data header should be removed from file contents or not.

trim

Boolean

Default: true

Whether file contents should be trimmed after removing file header or not. (has no effect if options.remove is false.)

setData

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.

License

MIT © 2016 Simon Lepel

Before version 2.2.2, @jakwings was the original author and owner of the npm package gulp-gray-matter.

About

A gulp plugin for extracting data header from file contents using gray-matter.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%