Files
inline-html/lib/inline-img.js
2015-09-25 13:38:32 -07:00

29 lines
799 B
JavaScript

var cheerio = require('cheerio');
var datauri = require('datauri');
var isLocalPath = require('is-local-path');
var isTemplateExpression = require('./is-template-expression');
var path = require('path');
var inline = function (html, filename) {
var files = [];
var basedir = path.dirname(filename);
var $ = cheerio.load(html, {decodeEntities: false});
var images = $('img').filter(function (index, element) {
var path = $(element).attr('src');
return isLocalPath(path) && !isTemplateExpression(path);
});
images.each(function (index, element) {
var src = $(element).attr('src');
var filename = path.resolve(basedir, src);
files.push(filename);
src = datauri(filename);
$(element).attr('src', src);
});
return {
html: $.xml(),
files: files
};
};
module.exports = inline;