diff --git a/src/lib/components/chat/Messages/Markdown.svelte b/src/lib/components/chat/Messages/Markdown.svelte index 1085ee7c59..ed1a0c505c 100644 --- a/src/lib/components/chat/Messages/Markdown.svelte +++ b/src/lib/components/chat/Messages/Markdown.svelte @@ -36,6 +36,8 @@ let tokens = []; let pendingUpdate = null; + let lastContent = ''; + let lastParsedContent = ''; const options = { throwOnError: false, @@ -56,7 +58,14 @@ }); const parseTokens = () => { - tokens = marked.lexer(replaceTokens(processResponseContent(content), model?.name, $user?.name)); + if (content === lastContent) return; + lastContent = content; + + const processed = replaceTokens(processResponseContent(content), model?.name, $user?.name); + if (processed === lastParsedContent) return; + lastParsedContent = processed; + + tokens = marked.lexer(processed); }; const updateHandler = (content) => {