Added support for verbose option that returns filenames of each inlined file alongside inlined html.

This commit is contained in:
Alexandre Gigliotti
2015-07-24 15:51:46 -07:00
parent dd4f03257c
commit 3cfd4f2b86
6 changed files with 73 additions and 37 deletions

View File

@@ -2,28 +2,42 @@ var _ = require('lodash');
var co = require('co');
var cheerio = require('cheerio');
var fs = require('mz/fs');
var inlineCss = require('./inline-css');
var inlineStyle = require('./inline-style');
var inlineImg = require('./inline-img');
var inlineLinkLess = require('./inline-link-less');
var inline = co.wrap(function * (filename, options) {
options = _.defaults(options || {}, {
less: {}
less: {},
verbose: false
});
var html = yield fs.readFile(filename, 'utf8');
var files = [filename];
// Inline links
html = yield inlineLinkLess(html, filename, options.less);
var lessResult = yield inlineLinkLess(html, filename, options.less);
html = lessResult.html;
files.push(lessResult.files);
// TODO inline links: css
// TODO inline scripts
// browserify js? => scriptify
// Inline paths -> datauris
html = inlineCss(html, filename);
html = inlineImg(html, filename);
var styleResult = inlineStyle(html, filename); // Inline styles
html = styleResult.html;
files.push(styleResult.files);
return html;
var imgResult = inlineImg(html, filename); // Inline images
html = imgResult.html;
files.push(imgResult.files);
var result = {
html: html,
files: _.unique(_.flatten(files, true))
};
return (options.verbose ? result : result.html);
});
module.exports = inline;