UNPKG

mancha

Version:

Javscript HTML rendering engine

35 lines 1.22 kB
import * as fs from "node:fs/promises"; import { JSDOM } from "jsdom"; import { IRenderer } from "./renderer.js"; export { IRenderer } from "./renderer.js"; export class Renderer extends IRenderer { impl = "jsdom"; parseHTML(content, params = { rootDocument: false }) { if (params.rootDocument) { return new JSDOM(content).window.document; } else { return JSDOM.fragment(content); } } serializeHTML(root) { const dom = new JSDOM(); const XMLSerializer = dom.window.XMLSerializer; return new XMLSerializer().serializeToString(root).replace(/\s?xmlns="[^"]+"/gm, ""); } createElement(tag, owner) { return (owner || new JSDOM().window.document).createElement(tag); } createComment(content, owner) { return (owner || new JSDOM().window.document).createComment(content); } textContent(node, content) { node.textContent = content; } async fetchLocal(fpath, params) { return fs.readFile(fpath, { encoding: params?.encoding || "utf8" }); } } // Export a global renderer instance directly. export const Mancha = new Renderer(); //# sourceMappingURL=index.js.map