authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-28 15:12:54-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-28 15:17:03-08:00
log1a66e517cdb2b5ff9486620bce64dc249a1d92be
treeb01599df3ff5ea846c26f69e62c7e1b958c74797
parent33e6f35ce9b4c846a64c818430797590fe965fe0

simp


1 files changed, 5 insertions(+), 13 deletions(-)

apps/web/src/components/ChatMarkdown.tsx+5-13
......@@ -87,28 +87,20 @@ function createHighlightCacheKey(code: string, language: string, themeName: Diff
8787 return `${fnv1a32(code).toString(36)}:${code.length}:${language}:${themeName}`;
8888}
8989
90function createHighlighterPromiseKey(language: string, themeName: DiffThemeName): string {
91 return `${language}:${themeName}`;
92}
93
9490function estimateHighlightedSize(html: string, code: string): number {
9591 return Math.max(html.length * 2, code.length * 3);
9692}
9793
98function getHighlighterPromise(
99 language: string,
100 themeName: DiffThemeName,
101): Promise<DiffsHighlighter> {
102 const cacheKey = createHighlighterPromiseKey(language, themeName);
103 const cached = highlighterPromiseCache.get(cacheKey);
94function getHighlighterPromise(language: string): Promise<DiffsHighlighter> {
95 const cached = highlighterPromiseCache.get(language);
10496 if (cached) return cached;
10597
10698 const promise = getSharedHighlighter({
107 themes: [themeName],
99 themes: ["pierre-dark", "pierre-light"],
108100 langs: [language as SupportedLanguages],
109101 preferredHighlighter: "shiki-js",
110102 });
111 highlighterPromiseCache.set(cacheKey, promise);
103 highlighterPromiseCache.set(language, promise);
112104 return promise;
113105}
114106
......@@ -186,7 +178,7 @@ function SuspenseShikiCodeBlock({
186178 );
187179 }
188180
189 const highlighter = use(getHighlighterPromise(language, themeName));
181 const highlighter = use(getHighlighterPromise(language));
190182 const highlightedHtml = useMemo(
191183 () => highlighter.codeToHtml(code, { lang: language, theme: themeName }),
192184 [code, highlighter, language, themeName],