|
1 | 1 | import { memo } from 'react'; |
2 | 2 | import Markdown from 'react-markdown'; |
3 | 3 | import remarkGfm from 'remark-gfm'; |
4 | | -import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter'; |
5 | | -import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; |
6 | | - |
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 | 4 |
|
42 | 5 | interface MarkdownRendererProps { |
43 | 6 | content: string; |
@@ -67,19 +30,9 @@ export const MarkdownRenderer = memo(function MarkdownRenderer({ |
67 | 30 | <div className="cc-code-header"> |
68 | 31 | <span className="cc-code-lang">{match[1]}</span> |
69 | 32 | </div> |
70 | | - <SyntaxHighlighter |
71 | | - style={vscDarkPlus} |
72 | | - language={match[1]} |
73 | | - PreTag="div" |
74 | | - customStyle={{ |
75 | | - margin: 0, |
76 | | - borderRadius: '0 0 6px 6px', |
77 | | - background: 'var(--code-bg)', |
78 | | - fontSize: '13px', |
79 | | - }} |
80 | | - > |
81 | | - {String(children).replace(/\n$/, '')} |
82 | | - </SyntaxHighlighter> |
| 33 | + <pre className="cc-code-body"> |
| 34 | + <code {...props}>{String(children).replace(/\n$/, '')}</code> |
| 35 | + </pre> |
83 | 36 | </div> |
84 | 37 | ); |
85 | 38 | }, |
|
0 commit comments