diff --git a/public/js/editormd/editormd.min.js b/public/js/editormd/editormd.min.js index 1dfa3121f..30660625b 100755 --- a/public/js/editormd/editormd.min.js +++ b/public/js/editormd/editormd.min.js @@ -1907,13 +1907,16 @@ return false; }, renderer(token) { - return katex.renderToString(token.text, { displayMode: token.displayMode }); + let renderString = '' + try { + renderString = katex.renderToString(token.text, { displayMode: token.displayMode }) + } catch (error) { + renderString = `
${ token.raw }` + } + return renderString } }; - - marked.use({ extensions: [kateX] }); - var markdownToC = this.markdownToC = []; var rendererOptions = this.markedRendererOptions = { toc: settings.toc, @@ -1940,6 +1943,10 @@ smartLists: true, smartypants: true }; + + if (editormd.kaTeXLoaded) { + marked.use({ extensions: [kateX] }); + } marked.setOptions(markedOptions); @@ -1990,6 +1997,8 @@ editormd.loadKaTeX(function () { editormd.$katex = katex; editormd.kaTeXLoaded = true; + marked.use({ extensions: [kateX] }); + _this.save(); }); } else { @@ -3456,7 +3465,7 @@ var tocHTML = "
" + this.atLink(this.emoji(text)) + "
\n"); + : ((pageBreakReg.test(text)) ? this.pageBreak(text) : this.atLink(this.emoji(text)) + "\n"); }; markedRenderer.code = function (code, lang, escaped) { diff --git a/src/common/marked.js b/src/common/marked.js index 8bc7a1245..83003c511 100644 --- a/src/common/marked.js +++ b/src/common/marked.js @@ -226,7 +226,13 @@ const kateX = { return false; }, renderer(token) { - return renderToString(token.text, { displayMode: token.displayMode }); + let renderString = '' + try { + renderString = renderToString(token.text, { displayMode: token.displayMode}) + } catch (error) { + renderString = `${ token.raw }` + } + return renderString } }; diff --git a/src/index.css b/src/index.css index c97e45d70..a5d90bc3d 100644 --- a/src/index.css +++ b/src/index.css @@ -240,4 +240,12 @@ i.color-orange05:hover { } .User span { margin-left:8px +} +.latex-error { + border: 1px solid #ff818266; + border-radius: 6px; + background-color: #ffebe9; + padding: 10px 8px; + font-size: 12px; + margin-bottom: 5px; } \ No newline at end of file