summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/utils/page.js17
-rw-r--r--package.json3
2 files changed, 16 insertions, 4 deletions
diff --git a/lib/utils/page.js b/lib/utils/page.js
index d7c2ef3..bd8ada3 100644
--- a/lib/utils/page.js
+++ b/lib/utils/page.js
@@ -2,12 +2,24 @@ var Q = require('q');
var _ = require('lodash');
var path = require('path');
var cheerio = require('cheerio');
+var domSerializer = require('dom-serializer');
var request = require('request');
var links = require('./links');
var imgUtils = require('./images');
var fs = require('./fs');
+// Render a cheerio dom as html
+var renderDom = function($, dom, options) {
+ if (!dom && $._root && $._root.children) {
+ dom = $._root.children;
+ }
+
+ options = options|| dom.options || $._options;
+ return domSerializer(dom, options);
+};
+
+// Map of images that have been converted
var imgConversionCache = {};
function replaceText($, el, search, replace, text_only ) {
@@ -76,8 +88,7 @@ function normalizeHtml(src, options) {
// Find svg images to extract and process
if (options.convertImages) {
$("svg").each(function() {
- var content = $.html($(this), { xmlMode: true});
-
+ var content = renderDom($, $(this));
var svgId = _.uniqueId("svg");
var dest = svgId+".svg";
@@ -198,7 +209,7 @@ function normalizeHtml(src, options) {
});
return {
- html: $.html(),
+ html: renderDom($),
images: toConvert
};
};
diff --git a/package.json b/package.json
index cd1a6c2..004d499 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,8 @@
"crc": "3.2.1",
"bash-color": "0.0.3",
"URIjs": "1.14.1",
- "request": "2.51.0"
+ "request": "2.51.0",
+ "dom-serializer": "git+https://github.com/SamyPesse/dom-serializer.git#58d8ea24b9b7b4137ee5f30a41abce4d7c4a922a"
},
"devDependencies": {
"mocha": "1.18.2",