From 82f410f6955d2277024f64b4b2d0b073cd3f263c Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 29 Oct 2020 21:06:30 +0100 Subject: [PATCH] fix math rendering in included note and note tooltip, fixes #1340 --- src/public/app/services/note_content_renderer.js | 7 +++++++ src/public/app/services/note_tooltip.js | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/public/app/services/note_content_renderer.js b/src/public/app/services/note_content_renderer.js index ba1056036..a4115d8d5 100644 --- a/src/public/app/services/note_content_renderer.js +++ b/src/public/app/services/note_content_renderer.js @@ -3,6 +3,7 @@ import utils from "./utils.js"; import renderService from "./render.js"; import protectedSessionService from "./protected_session.js"; import protectedSessionHolder from "./protected_session_holder.js"; +import libraryLoader from "./library_loader.js"; async function getRenderedContent(note) { const type = getRenderingType(note); @@ -13,6 +14,12 @@ async function getRenderedContent(note) { const fullNote = await server.get('notes/' + note.noteId); $rendered = $('
').html(fullNote.content); + + if ($rendered.find('span.math-tex').length > 0) { + await libraryLoader.requireLibrary(libraryLoader.KATEX); + + renderMathInElement($rendered[0], {}); + } } else if (type === 'code') { const fullNote = await server.get('notes/' + note.noteId); diff --git a/src/public/app/services/note_tooltip.js b/src/public/app/services/note_tooltip.js index 46048d87e..10a685efe 100644 --- a/src/public/app/services/note_tooltip.js +++ b/src/public/app/services/note_tooltip.js @@ -3,6 +3,7 @@ import linkService from "./link.js"; import treeCache from "./tree_cache.js"; import utils from "./utils.js"; import attributeRenderer from "./attribute_renderer.js"; +import libraryLoader from "./library_loader.js"; function setupGlobalTooltip() { $(document).on("mouseenter", "a", mouseEnterHandler); @@ -101,7 +102,15 @@ async function renderTooltip(note, noteComplement) { } if (note.type === 'text' && !utils.isHtmlEmpty(noteComplement.content)) { - content += '
' + noteComplement.content + '
'; + const $content = $('
').append(noteComplement.content); + + if ($content.find('span.math-tex').length > 0) { + await libraryLoader.requireLibrary(libraryLoader.KATEX); + + renderMathInElement($content[0], {}); + } + + content += $content[0].outerHTML; } else if (note.type === 'code' && noteComplement.content && noteComplement.content.trim()) { content += $("
")