|
|
@@ -77,13 +77,13 @@ this.singlefile.lib.modules.serializer = this.singlefile.lib.modules.serializer
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- function serialize(node, compressHTML) {
|
|
|
+ function serialize(node, compressHTML, isSVG) {
|
|
|
if (node.nodeType == Node_TEXT_NODE) {
|
|
|
return serializeTextNode(node);
|
|
|
} else if (node.nodeType == Node_COMMENT_NODE) {
|
|
|
return serializeCommentNode(node);
|
|
|
} else if (node.nodeType == Node_ELEMENT_NODE) {
|
|
|
- return serializeElement(node, compressHTML);
|
|
|
+ return serializeElement(node, compressHTML, isSVG);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -107,7 +107,7 @@ this.singlefile.lib.modules.serializer = this.singlefile.lib.modules.serializer
|
|
|
return "<!--" + commentNode.textContent + "-->";
|
|
|
}
|
|
|
|
|
|
- function serializeElement(element, compressHTML) {
|
|
|
+ function serializeElement(element, compressHTML, isSVG) {
|
|
|
const tagName = element.tagName.toLowerCase();
|
|
|
const omittedStartTag = compressHTML && OMITTED_START_TAGS.find(omittedStartTag => tagName == omittedStartTag.tagName && omittedStartTag.accept(element));
|
|
|
let content = "";
|
|
|
@@ -119,10 +119,10 @@ this.singlefile.lib.modules.serializer = this.singlefile.lib.modules.serializer
|
|
|
if (element.tagName == "TEMPLATE" && !element.childNodes.length) {
|
|
|
content += element.innerHTML;
|
|
|
} else {
|
|
|
- Array.from(element.childNodes).forEach(childNode => content += serialize(childNode, compressHTML));
|
|
|
+ Array.from(element.childNodes).forEach(childNode => content += serialize(childNode, compressHTML, isSVG || tagName == "svg"));
|
|
|
}
|
|
|
const omittedEndTag = compressHTML && OMITTED_END_TAGS.find(omittedEndTag => tagName == omittedEndTag.tagName && omittedEndTag.accept(element.nextSibling, element));
|
|
|
- if (!omittedEndTag && !SELF_CLOSED_TAG_NAMES.includes(tagName)) {
|
|
|
+ if (isSVG || (!omittedEndTag && !SELF_CLOSED_TAG_NAMES.includes(tagName))) {
|
|
|
content += "</" + tagName + ">";
|
|
|
}
|
|
|
return content;
|