diff --git a/ReactNativeClient/lib/MdToHtml.js b/ReactNativeClient/lib/MdToHtml.js index 7193a4a2b2..dc21551fb6 100644 --- a/ReactNativeClient/lib/MdToHtml.js +++ b/ReactNativeClient/lib/MdToHtml.js @@ -251,7 +251,11 @@ class MdToHtml { } } - if (codeBlockHandler) codeBlockHandler.loadAssets(); + if (codeBlockHandler) { + codeBlockHandler.loadAssets().catch((error) => { + console.warn('MdToHtml: Error loading assets for ' + codeBlockHandler.name() + ': ', error.message); + }); + } if (t.type === 'image') { if (tokenContent) attrs.push(['title', tokenContent]); @@ -267,7 +271,7 @@ class MdToHtml { } else { if (tokenContent) { if ((isCodeBlock || isInlineCode) && codeBlockHandler) { - output = codeBlockHandler.processContent(output, tokenContent); + output = codeBlockHandler.processContent(output, tokenContent, isCodeBlock ? 'block' : 'inline'); } else { output.push(htmlentities(tokenContent)); } diff --git a/ReactNativeClient/lib/MdToHtml_Katex.js b/ReactNativeClient/lib/MdToHtml_Katex.js index 350a05b42e..9f3d315919 100644 --- a/ReactNativeClient/lib/MdToHtml_Katex.js +++ b/ReactNativeClient/lib/MdToHtml_Katex.js @@ -9,9 +9,12 @@ class MdToHtml_Katex { return 'katex'; } - processContent(renderedTokens, content) { + processContent(renderedTokens, content, tagType) { try { - const renderered = katex.renderToString(content); + let renderered = katex.renderToString(content); + + if (tagType === 'block') renderered = '
' + renderered + '
'; + renderedTokens.push(renderered); } catch (error) { renderedTokens.push('Cannot render Katex content: ' + error.message); @@ -33,6 +36,7 @@ class MdToHtml_Katex { // Fonts must go under the resourceDir directory because this is the baseUrl of NoteBodyViewer const baseDir = Setting.value('resourceDir'); await shim.fsDriver().mkdir(baseDir + '/fonts'); + await shim.fetchBlob('https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Main-Regular.woff2', { overwrite: false, path: baseDir + '/fonts/KaTeX_Main-Regular.woff2' }); await shim.fetchBlob('https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Math-Italic.woff2', { overwrite: false, path: baseDir + '/fonts/KaTeX_Math-Italic.woff2' }); await shim.fetchBlob('https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Size1-Regular.woff2', { overwrite: false, path: baseDir + '/fonts/KaTeX_Size1-Regular.woff2' });