domutils
Advanced tools
Comparing version 1.1.1 to 1.1.2
34
index.js
@@ -51,3 +51,3 @@ var ElementType = require("domelementtype"), | ||
if(typeof limit !== "number" || limit === Infinity){ | ||
if(typeof limit !== "number" || !isFinite(limit)){ | ||
if(recurse === false){ | ||
@@ -198,2 +198,20 @@ return element.filter(test); | ||
var emptyTags = { | ||
__proto__: null, | ||
area: true, | ||
base: true, | ||
basefont: true, | ||
br: true, | ||
col: true, | ||
frame: true, | ||
hr: true, | ||
img: true, | ||
input: true, | ||
isindex: true, | ||
link: true, | ||
meta: true, | ||
param: true, | ||
embed: true | ||
}; | ||
DomUtils.getOuterHTML = function(elem){ | ||
@@ -205,3 +223,3 @@ var type = elem.type; | ||
if(type === ElementType.Directive) return "<" + elem.data + ">"; | ||
if(type === ElementType.CDATA) return "<!CDATA " + elem.data + "]]>"; | ||
if(type === ElementType.CDATA) return "<!CDATA " + DomUtils.getInnerHTML(elem) + "]]>"; | ||
@@ -224,9 +242,15 @@ var ret = "<" + elem.name; | ||
} | ||
return ret + ">" + DomUtils.getInnerHTML(elem) + "</" + elem.name + ">"; | ||
if (elem.name in emptyTags && elem.children.length === 0) { | ||
return ret + " />"; | ||
} else { | ||
return ret + ">" + DomUtils.getInnerHTML(elem) + "</" + elem.name + ">"; | ||
} | ||
}; | ||
DomUtils.getText = function getText(elem){ | ||
if(isTag(elem)) return elem.children.map(getText).join(""); | ||
if(Array.isArray(elem)) return elem.map(getText).join(""); | ||
if(isTag(elem) || elem.type === ElementType.CDATA) return getText(elem.children); | ||
if(elem.type === ElementType.Text) return elem.data; | ||
return ""; | ||
}; | ||
}; |
{ | ||
"name": "domutils", | ||
"version": "1.1.1", | ||
"version": "1.1.2", | ||
"description": "utilities for working with htmlparser2's dom", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
12642
398