# assemble-streams [![NPM version](https://img.shields.io/npm/v/assemble-streams.svg?style=flat)](https://www.npmjs.com/package/assemble-streams) [![NPM downloads](https://img.shields.io/npm/dm/assemble-streams.svg?style=flat)](https://npmjs.org/package/assemble-streams) [![Build Status](https://img.shields.io/travis/assemble/assemble-streams.svg?style=flat)](https://travis-ci.org/assemble/assemble-streams) Assemble pipeline plugin for pushing a view collection into a vinyl stream. ## Install Install with [npm](https://www.npmjs.com/): ```sh $ npm install assemble-streams --save ``` ## Usage This plugin can be used with [assemble](https://github.com/assemble/assemble), [verb](https://github.com/verbose/verb) or any other application based on [templates](https://github.com/jonschlinkert/templates). ```js var assemble = require('assemble'); var streams = require('assemble-streams'); // create your application var app = assemble(); // register the plugin app.use(stream()); // use the plugin on app app.toStream('pages') .pipe(app.dest('site/')); // use the plugin on a collection app.pages.toStream() .pipe(app.dest('site/')); // use the plugin on a view app.pages.getView('home').toStream() .pipe(app.dest('site/')); ``` See the [tests](./test.js) for more examples. ## API ### [app.toStream](index.js#L48) Push a view collection into a vinyl stream. **Params** * `collection` **{String}**: Name of the collection to push into the stream. * **{Function}**: Optionally pass a filter function to use for filtering views. * `returns` **{Stream}** **Example** ```js app.toStream('posts', function(file) { return file.path !== 'index.hbs'; }) ``` ### [collection.toStream](index.js#L100) Push a view collection into a vinyl stream. **Params** * **{Function}**: Optionally pass a filter function to use for filtering views. * `returns` **{Stream}** **Example** ```js app.posts.toStream(function(file) { return file.path !== 'index.hbs'; }) ``` ### [view.toStream](index.js#L135) Push the current view into a vinyl stream. * `returns` **{Stream}** **Example** ```js app.pages.getView('a.html').toStream() .on('data', function(file) { console.log(file); //=> > }); ``` ## Related projects You might also be interested in these projects: * [assemble-loader](https://www.npmjs.com/package/assemble-loader): Assemble plugin (^0.6.0) for loading globs of views onto custom view collections. Also works with… [more](https://www.npmjs.com/package/assemble-loader) | [homepage](https://github.com/assemble/assemble-loader) * [assemble-render-file](https://www.npmjs.com/package/assemble-render-file): Assemble plugin for rendering views in a vinyl pipeline. | [homepage](https://github.com/assemble/assemble-render-file) * [assemble](https://www.npmjs.com/package/assemble): Assemble is a powerful, extendable and easy to use static site generator for node.js. Used… [more](https://www.npmjs.com/package/assemble) | [homepage](https://github.com/assemble/assemble) ## Contributing Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/assemble/assemble-streams/issues/new). ## Building docs Generate readme and API documentation with [verb](https://github.com/verbose/verb): ```sh $ npm install verb && npm run docs ``` Or, if [verb](https://github.com/verbose/verb) is installed globally: ```sh $ verb ``` ## Running tests Install dev dependencies: ```sh $ npm install -d && npm test ``` ## Author **Jon Schlinkert** * [github/jonschlinkert](https://github.com/jonschlinkert) * [twitter/jonschlinkert](http://twitter.com/jonschlinkert) ## License Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). Released under the [MIT license](https://github.com/assemble/assemble-streams/blob/master/LICENSE). *** _This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on May 24, 2016._