Skip to content

Commit 8eaef27

Browse files
committed
perf: use PrismLight with 15 languages instead of full Prism (300+) to fix slow dev loading
1 parent 6996e07 commit 8eaef27

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

client/src/components/MarkdownRenderer.tsx

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,44 @@
11
import { memo } from 'react';
22
import Markdown from 'react-markdown';
33
import remarkGfm from 'remark-gfm';
4-
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
4+
import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter';
55
import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism';
66

7+
// Register only languages commonly seen in AI coding conversations
8+
import typescript from 'react-syntax-highlighter/dist/esm/languages/prism/typescript';
9+
import javascript from 'react-syntax-highlighter/dist/esm/languages/prism/javascript';
10+
import tsx from 'react-syntax-highlighter/dist/esm/languages/prism/tsx';
11+
import jsx from 'react-syntax-highlighter/dist/esm/languages/prism/jsx';
12+
import python from 'react-syntax-highlighter/dist/esm/languages/prism/python';
13+
import bash from 'react-syntax-highlighter/dist/esm/languages/prism/bash';
14+
import json from 'react-syntax-highlighter/dist/esm/languages/prism/json';
15+
import css from 'react-syntax-highlighter/dist/esm/languages/prism/css';
16+
import sql from 'react-syntax-highlighter/dist/esm/languages/prism/sql';
17+
import yaml from 'react-syntax-highlighter/dist/esm/languages/prism/yaml';
18+
import markdown from 'react-syntax-highlighter/dist/esm/languages/prism/markdown';
19+
import rust from 'react-syntax-highlighter/dist/esm/languages/prism/rust';
20+
import go from 'react-syntax-highlighter/dist/esm/languages/prism/go';
21+
import java from 'react-syntax-highlighter/dist/esm/languages/prism/java';
22+
import csharp from 'react-syntax-highlighter/dist/esm/languages/prism/csharp';
23+
24+
SyntaxHighlighter.registerLanguage('typescript', typescript);
25+
SyntaxHighlighter.registerLanguage('javascript', javascript);
26+
SyntaxHighlighter.registerLanguage('tsx', tsx);
27+
SyntaxHighlighter.registerLanguage('jsx', jsx);
28+
SyntaxHighlighter.registerLanguage('python', python);
29+
SyntaxHighlighter.registerLanguage('bash', bash);
30+
SyntaxHighlighter.registerLanguage('shell', bash);
31+
SyntaxHighlighter.registerLanguage('json', json);
32+
SyntaxHighlighter.registerLanguage('css', css);
33+
SyntaxHighlighter.registerLanguage('sql', sql);
34+
SyntaxHighlighter.registerLanguage('yaml', yaml);
35+
SyntaxHighlighter.registerLanguage('markdown', markdown);
36+
SyntaxHighlighter.registerLanguage('rust', rust);
37+
SyntaxHighlighter.registerLanguage('go', go);
38+
SyntaxHighlighter.registerLanguage('java', java);
39+
SyntaxHighlighter.registerLanguage('csharp', csharp);
40+
SyntaxHighlighter.registerLanguage('cs', csharp);
41+
742
interface MarkdownRendererProps {
843
content: string;
944
className?: string;

0 commit comments

Comments
 (0)