gulp-group-array
Gulp plugin to group vinyl files by properties on the vinyl file using group-array.
Install
Install with npm:
$ npm install --save gulp-group-array
Usage
var groupArray = ;
API
groupArray
Group vinyl files by specified properties on the vinyl files. This uses group-array to do the grouping after all the vinyl files have come through the stream. See the group-array documentation for more advanced features.
Params
args...
{Mixed}: All of the arguments will be passed through to group-array except for the last argument if it's an object.options
{Object}: Optional object to specify options. If this is passed, then it won't be passed to group-array.options.groupFn
{Function}: Function that will be called with thegroup
object. This is the results from calling group-array.options.flush
{Boolean}: When set tofalse
, the source files will not be pushed through the stream. (Defaults totrue
)options.groupFile
{Boolean}: When set totrue
, a new vinyl-group will be created with a.group
property containing the group object created by group-array.returns
{Stream}: Returns a stream to pipe vinyl source files through.
Example
gulp;
Examples
Use the groupFn
to capture the group to use the group in another place:
var cache = {};gulp; gulp;
Use groupFile
to get the group in another plugin before the other files come through. This example will use gulp-gray-matter to parse yaml front matter from handlebars templates, build a context
for each file using the group
and the file.data
, then render the handlebars templates to html using the context
.
This example requires having some handlebars templates with yaml front-matter. Create a few files with the following template:
---tags: ['foo', 'bar']---{{#each groups.tags as |items tag|}} <div>{{tag}}</div> <ul> {{#each items as |item|}} <li>{{item.path}}</li> {{/each}} </ul>{{/each}}
Use the following javascript in a gulpfile.js
to render the files:
var gulp = ;var extname = ;var extend = ;var Handlebars = ;var matter = ;var through = ; var groupArray = ; gulp;
Run the following command to render the files:
$ gulp render
About
Related projects
- group-array: Group array of objects into lists. | homepage
- gulp: The streaming build system | homepage
- vinyl: A virtual file format | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Brian Woodward
License
Copyright © 2016, Brian Woodward. Released under the MIT license.
This file was generated by verb, v0.9.0, on July 29, 2016.