UNPKG

vue-renderer-markdown

Version:

Vue 3 Markdown renderer optimized for large docs: progressive Mermaid, streaming diff code blocks, and fast real-time preview.

55 lines (54 loc) 1.71 kB
import katex from "katex"; let DEBUG = false; globalThis.addEventListener("message", (ev) => { var _a, _b, _c, _d; const data = ev.data || {}; if (data.type === "init") { DEBUG = !!data.debug; try { if (DEBUG) console.debug("[katexRenderer.worker] debug enabled"); } catch (e) { } return; } const id = (_a = data.id) != null ? _a : ""; const content = (_b = data.content) != null ? _b : ""; const displayMode = (_c = data.displayMode) != null ? _c : true; try { if (DEBUG) console.debug("[katexRenderer.worker] render start", { id, displayMode, content }); const html = katex.renderToString(content, { throwOnError: true, displayMode, output: "html", strict: "ignore" }); const out = { id, html, content, displayMode }; try { ; globalThis.postMessage(out); if (DEBUG) console.debug("[katexRenderer.worker] render success", { id }); } catch (postErr) { console.error("[katexRenderer.worker] failed to postMessage result", postErr); } } catch (err) { const out = { id, error: String((_d = err == null ? void 0 : err.message) != null ? _d : err), content, displayMode }; try { ; globalThis.postMessage(out); } catch (postErr) { console.error("[katexRenderer.worker] failed to postMessage error", postErr); } } }); globalThis.addEventListener("error", (ev) => { var _a; console.error("[katexRenderer.worker] uncaught error", ev.message, ev.error); try { ; globalThis.postMessage({ id: "__worker_uncaught__", error: String((_a = ev.message) != null ? _a : ev.error), content: "", displayMode: true }); } catch (e) { } });