import React, { memo } from 'react'; import ReactMarkdown from 'react-markdown'; import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; import { Box, Flex, useColorModeValue } from '@chakra-ui/react'; import { useCopyData } from '@/utils/tools'; import Icon from '@/components/Icon'; import remarkGfm from 'remark-gfm'; import remarkMath from 'remark-math'; import rehypeKatex from 'rehype-katex'; import 'katex/dist/katex.min.css'; import styles from './index.module.scss'; import { codeLight } from './codeLight'; const Markdown = ({ source, isChatting = false }: { source: string; isChatting?: boolean }) => { const { copyData } = useCopyData(); return ( {match?.[1]} copyData(code)} alignItems={'center'}> 复制代码 {code} ) : ( {code} ); } }} linkTarget="_blank" > {source} ); }; export default memo(Markdown);