gulp-pluck
Learn more about gulp.js, the streaming build system
Introduction
Gulp-pluck makes it so you can take a property from file and concatenate it into a single array/file. E.g.,
file1data = name: 'george';file2data = name: 'suzy';
Turns into:
file1data;// => [ {name: 'george'}, {name: 'suzy'} ]
Usage
Install
First, install gulp-pluck
as a development dependency:
npm install --save-dev gulp-data
Parameters
gulp-pluck takes two optional parameters:
propName
which defaults to data
. propName
tells gulp-pluck
which property to operate on.
fileName
will give the file a new name. fileName
defaults to the first file name to pass through the function.
Example
Then, add it to your gulpfile.js:
var gulp = var data = var pluck = var frontMatter = gulp
The data flow would look something like this:
file1:
---title: There's still hope for hoverboardsdate: October 21, 2015--- I'll hover convert your old road car into a skyway flyer!
file2:
---title: Finish itdate: 2500--- Through that last dark cloud is a dying star. And soon enough, Xibalbia will die.And when it explodes, it will be reborn. You will bloom...and I will live.
frontMatter
turns it into:
file1meta// => {// title: "There's still hope for hoverboards"// date: "October 21, 2015"// }file2meta // => {// title: "Finish it"// date: "2500"// }
data
adds the file path:
file1meta// => {// title: "There's still hope for hoverboards"// date: "October 21, 2015"// path: "/posts/2015-10-21-hoverboards.md"// }file2meta // => {// title: "Finish it"// date: "2500"// path: "/posts/2500-finish_it.md"// }
pluck
reduces it to a single file:
file1meta // file1.path => "/posts/posts-metadata.json"// => [{// title: "There's still hope for hoverboards"// date: "October 21, 2015"// path: "/posts/2015-10-21-hoverboards.md"// },// {// title: "Finish it"// date: "2500"// path: "/posts/2500-finish_it.md"// }]
data
then throws the object into a JSON
-style string
in the contents
property so it prints out as a JSON
file.