import React from 'react'; import ReactMarkdown from 'react-markdown'; import 'katex/dist/katex.min.css'; import RemarkMath from 'remark-math'; import RemarkBreaks from 'remark-breaks'; import RehypeKatex from 'rehype-katex'; import RemarkGfm from 'remark-gfm'; import '../../styles/components/chat-with-llm/markdown.css'; interface MarkdownProps { content: string; className?: string; } /** * Markdown 渲染组件 * 使用 react-markdown 库进行标准 Markdown 解析,支持流式渲染 */ export default function Markdown({ content, className = '' }: MarkdownProps) { // console.log('🎨 [Markdown] 渲染组件:', { // contentLength: content?.length || 0, // contentPreview: content?.substring(0, 100) + (content && content.length > 100 ? '...' : ''), // className, // hasContent: !!content // }); if (!content) { console.log('⚠️ [Markdown] 内容为空,返回null'); return null; } return (
{String(children).replace(/\n$/, '')} ); } else { // 内联代码 return ( {children} ); } }, }} > {content}
); }