Fixed bug where style attributes of elements outside a body element would not be inlined.

This commit is contained in:
Alexandre Gigliotti
2015-07-30 09:13:39 -07:00
parent f827188cf2
commit 840dba9901

View File

@@ -14,22 +14,21 @@ var unwrap = function (value) {
var inline = function (html, filename) { var inline = function (html, filename) {
var files = []; var files = [];
var $ = cheerio.load(html, {decodeEntities: false}); var $ = cheerio.load(html, {decodeEntities: false});
// style elements // style elements
var styles = $('style'); var styles = $('style');
styles.each(function (index, element) { styles.each(function (index, element) {
var css = $(element).html(); var css = $(element).html();
result = inlineUrl(css, filename); var result = inlineUrl(css, filename);
files.push(result.files); files.push(result.files);
$(element).html(result.css); $(element).html(result.css);
}); });
// style attributes // style attributes
var attributes = $('body *').filter('[style]'); var attributes = $('*').filter('[style]');
attributes.each(function (index, element) { attributes.each(function (index, element) {
var css = $(element).attr('style'); var css = $(element).attr('style');
css = wrap(css); css = wrap(css);
result = inlineUrl(css, filename); var result = inlineUrl(css, filename);
files.push(result.files); files.push(result.files);
css = string(result.css).collapseWhitespace().toString(); css = string(result.css).collapseWhitespace().toString();
css = unwrap(css); css = unwrap(css);