diff --git a/app/src/protyle/render/mermaidRender.ts b/app/src/protyle/render/mermaidRender.ts index 6af9fbf90..557c085ea 100644 --- a/app/src/protyle/render/mermaidRender.ts +++ b/app/src/protyle/render/mermaidRender.ts @@ -69,8 +69,15 @@ const initMermaid = (mermaidElements: Element[]) => { const renderElement = item.firstElementChild.nextElementSibling as HTMLElement; const id = "mermaid" + item.dataset.nodeId; renderElement.innerHTML = `${Constants.ZWSP}
`; - const mermaidData = await window.mermaid.render(id, Lute.UnEscapeHTMLStr(item.getAttribute("data-content"))); - renderElement.lastElementChild.innerHTML = mermaidData.svg; + try { + const mermaidData = await window.mermaid.render(id, Lute.UnEscapeHTMLStr(item.getAttribute("data-content"))); + renderElement.lastElementChild.innerHTML = mermaidData.svg; + } catch (e) { + const errorElement = document.querySelector("#" + id); + renderElement.lastElementChild.innerHTML = `${errorElement.outerHTML}
${e.message.replace(/\n/, "
")}
`; + errorElement.parentElement.remove(); + } + item.setAttribute("data-render", "true"); }); };