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}