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.
24 lines
668 B
24 lines
668 B
4 years ago
|
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 "";
|
||
|
}
|