vinylize
v0.3.0 vinyl vinyl-fs stream object-stream transform gulp gulpfriendly
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.