html-flavors
Version:
HTML conversion tools
32 lines (28 loc) • 784 B
JavaScript
var parser = require('posthtml-parser');
module.exports = function parseHtml(html) {
var postHtmlAst = parser(html);
function identity(v) {
return v;
}
function visit(node) {
var node2;
if (typeof node === 'string') {
// text node
node2 = {type: 'text', text: node};
} else node2 = {
type: 'element',
tag: node.tag,
classes: ((node.attrs || {}).class || '').split(' '),
props: node.attrs
};
if (node.content) {
node2.children = node.content.map(visit).filter(identity);
}
return node2;
}
return {
type: 'element',
tag: 'root',
children: postHtmlAst.map(visit).filter(identity)
}
}