editor: handle crash on inserting incorrect syntax in math nodes (#9690)

* editor: handle crash on inserting incorrect syntax in math nodes
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* editor: fix 'math error' text shown on newly empty math node
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>
This commit is contained in:
01zulfi
2026-04-13 20:35:57 +05:00
committed by GitHub
parent d6f7f0c0be
commit 71088fca99
2 changed files with 24 additions and 10 deletions

View File

@@ -276,6 +276,8 @@ export class MathView implements NodeView, ICursorPosObserver {
while (this._mathRenderElt.firstChild) {
this._mathRenderElt.firstChild.remove();
}
this._mathRenderElt.classList.remove("parse-error");
this.dom.setAttribute("title", "");
// do not render empty math
return;
} else {

View File

@@ -32,20 +32,32 @@ async function loadKatex() {
export const KatexRenderer: MathRenderer = {
inline: (text, element) => {
loadKatex().then((katex) => {
katex.render(text, element, {
displayMode: false,
globalGroup: true,
throwOnError: false
});
try {
katex.render(text, element, {
displayMode: false,
globalGroup: true,
throwOnError: false
});
} catch (err) {
console.error(err);
element.classList.add("parse-error");
element.setAttribute("title", err instanceof Error ? err.message : String(err));
}
});
},
block: (text, element) => {
loadKatex().then((katex) => {
katex.render(text, element, {
displayMode: true,
globalGroup: true,
throwOnError: false
});
try {
katex.render(text, element, {
displayMode: true,
globalGroup: true,
throwOnError: false
});
} catch (err) {
console.error(err);
element.classList.add("parse-error");
element.setAttribute("title", err instanceof Error ? err.message : String(err));
}
});
}
};