From 7ea6afdf958cda36d8a8207869ea6066283e0322 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Thu, 26 Feb 2026 22:34:42 +0100 Subject: [PATCH] perf: cache KaTeX module import as singleton across all renderer instances (#21880) * perf: cache KaTeX module import as singleton across all renderer instances KatexRenderer.svelte dynamically imports katex, mhchem, and the CSS on every component mount. When a message contains multiple math expressions, this triggers redundant module resolution for each one. Move the import promise to a module-level singleton using Svelte's context='module' script block so it loads once and is shared across all KatexRenderer instances. * Update KatexRenderer.svelte --- .../Messages/Markdown/KatexRenderer.svelte | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/lib/components/chat/Messages/Markdown/KatexRenderer.svelte b/src/lib/components/chat/Messages/Markdown/KatexRenderer.svelte index d28edb224f..f256d48b87 100644 --- a/src/lib/components/chat/Messages/Markdown/KatexRenderer.svelte +++ b/src/lib/components/chat/Messages/Markdown/KatexRenderer.svelte @@ -1,5 +1,21 @@ - + + {#if renderToString} {@html renderToString(content, { displayMode, throwOnError: false })} {/if} +