mirror of
https://github.com/KevinMidboe/inline-html.git
synced 2025-10-29 17:40:29 +00:00
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
var _ = require('lodash');
|
|
var co = require('co');
|
|
var cheerio = require('cheerio');
|
|
var fs = require('mz/fs');
|
|
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: {},
|
|
verbose: false
|
|
});
|
|
var html = yield fs.readFile(filename, 'utf8');
|
|
var files = [filename];
|
|
|
|
// Inline links
|
|
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
|
|
var styleResult = inlineStyle(html, filename); // Inline styles
|
|
html = styleResult.html;
|
|
files.push(styleResult.files);
|
|
|
|
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;
|