uhtml
Version:
A micro HTML/SVG render
25 lines (22 loc) • 592 B
JavaScript
;
const { SVG_NAMESPACE, newRange } = require('./utils.js');
let template = document.createElement('template'), svg, range;
/**
* @param {string} text
* @param {boolean} xml
* @returns {DocumentFragment}
*/
module.exports = (text, xml) => {
if (xml) {
if (!svg) {
svg = document.createElementNS(SVG_NAMESPACE, 'svg');
range = newRange();
range.selectNodeContents(svg);
}
return range.createContextualFragment(text);
}
template.innerHTML = text;
const { content } = template;
template = template.cloneNode(false);
return content;
};