diff --git a/ts/editable/mathjax.ts b/ts/editable/mathjax.ts index b21c43301..1471a3c15 100644 --- a/ts/editable/mathjax.ts +++ b/ts/editable/mathjax.ts @@ -36,19 +36,25 @@ export function convertMathjax( return getEmptyIcon(style); } - const output = globalThis.MathJax.tex2svg(input); - const svg = output.children[0]; + let output: Element; + try { + output = globalThis.MathJax.tex2svg(input); + } catch (e) { + return ["Mathjax Error", String(e)]; + } - if (svg.viewBox.baseVal.height === 16) { + const svg = output.children[0] as SVGElement; + + if ((svg as any).viewBox.baseVal.height === 16) { return getEmptyIcon(style); } let title = ""; if (svg.innerHTML.includes("data-mjx-error")) { - svg.querySelector("rect").setAttribute("fill", "yellow"); - svg.querySelector("text").setAttribute("color", "red"); - title = svg.querySelector("title").innerHTML; + svg.querySelector("rect")?.setAttribute("fill", "yellow"); + svg.querySelector("text")?.setAttribute("color", "red"); + title = svg.querySelector("title")?.innerHTML ?? ""; } else { svg.insertBefore(style, svg.children[0]); }