vinylize
v0.3.0
Published
Turn object streams into vinyl streams
Downloads
25
Maintainers
Readme
vinylize
Turn object streams into vinyl
streams.
Installation
npm install vinylize
Usage
The following turns each movie object into a vinyl
file that can be wrapped in a lodash template by gulp-wrap
:
var gulp = require('gulp');
var streamify = require('stream-array');
var vinylize = require('vinylize');
var friendlyUrl = require('friendly-url');
var wrap = require('gulp-wrap');
// this might come from a database or other data source
var movies = [
{ title:'2001: A Space Odyssey', director:'Stanley Kubrick', year:1968 },
{ title:'THX 1138', director:'George Lucas', year:1971 },
{ title:'Blade Runner', director:'Ridley Scott', year:1982 }
];
// use vinylize() in an existing stream to turn objects into vinyl files
gulp.task('vinylize-pipe', function() {
return streamify(movies)
.pipe(vinylize({ path: function(movie) {
return friendlyUrl(movie.title) + '.html';
}}))
.pipe(wrap('<h1><%= title %> (<%= year %>)</h1>\n' +
'<div>Directed by: <%= director %></div>'))
.pipe(gulp.dest('movies'));
});
// alternatively use vinylize() to create a new stream of vinyl files
gulp.task('vinylize-stream', function() {
vinylize(movies, { path: function(movie) {
return friendlyUrl(movie.title) + '.html';
}})
.pipe(wrap('<h1><%= title %> (<%= year %>)</h1>\n' +
'<div>Directed by: <%= director %></div>'))
.pipe(gulp.dest('movies'));
});
Result
movies/2001-a-space-odyssey.html
<h1>2001: A Space Odyssey (1968)</h1>
<div>Directed by: Stanley Kubrick</div>
movies/thx-1138.html
<h1>THX 1138 (1971)</h1>
<div>Directed by: George Lucas</div>
movies/blade-runner.html
<h1>Blade Runner (1982)</h1>
<div>Directed by: Ridley Scott</div>
See the examples folder for more examples.
API
See the API documentation for available functions and options.