You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
668 B
23 lines
668 B
var ElementType = require("domelementtype"), |
|
getOuterHTML = require("dom-serializer"), |
|
isTag = ElementType.isTag; |
|
|
|
module.exports = { |
|
getInnerHTML: getInnerHTML, |
|
getOuterHTML: getOuterHTML, |
|
getText: getText |
|
}; |
|
|
|
function getInnerHTML(elem, opts){ |
|
return elem.children ? elem.children.map(function(elem){ |
|
return getOuterHTML(elem, opts); |
|
}).join("") : ""; |
|
} |
|
|
|
function getText(elem){ |
|
if(Array.isArray(elem)) return elem.map(getText).join(""); |
|
if(isTag(elem)) return elem.name === "br" ? "\n" : getText(elem.children); |
|
if(elem.type === ElementType.CDATA) return getText(elem.children); |
|
if(elem.type === ElementType.Text) return elem.data; |
|
return ""; |
|
}
|
|
|