diff --git a/ElectronClient/gui/editors/TinyMCE.tsx b/ElectronClient/gui/editors/TinyMCE.tsx index b30eac8497..82524d039f 100644 --- a/ElectronClient/gui/editors/TinyMCE.tsx +++ b/ElectronClient/gui/editors/TinyMCE.tsx @@ -55,9 +55,10 @@ function findBlockSource(node:any) { function newBlockSource(language:string = '', content:string = ''):any { const fence = language === 'katex' ? '$$' : '```'; + const fenceLanguage = language === 'katex' ? '' : language; return { - openCharacters: `\n${fence}${language}\n`, + openCharacters: `\n${fence}${fenceLanguage}\n`, closeCharacters: `\n${fence}\n`, content: content, node: null, diff --git a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js index c2252d2997..ba9164f073 100644 --- a/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js +++ b/ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js @@ -230,7 +230,7 @@ module.exports = { const katexInline = function(latex) { options.displayMode = false; try { - return `${latex}${renderToStringWithCache(latex, options)}`; + return `${md.utils.escapeHtml(latex)}${renderToStringWithCache(latex, options)}`; } catch (error) { console.error('Katex error for:', latex, error); return latex; @@ -245,7 +245,7 @@ module.exports = { const katexBlock = function(latex) { options.displayMode = true; try { - return `
${latex}${renderToStringWithCache(latex, options)}
${md.utils.escapeHtml(latex)}${renderToStringWithCache(latex, options)}