| 123456789101112131415161718192021222324252627282930313233343536 |
- import Markdown from 'react-markdown';
- import SyntaxHighlighter from 'react-syntax-highlighter';
- import remarkGfm from 'remark-gfm';
-
- const HightLightMarkdown = ({
- children,
- }: {
- children: string | null | undefined;
- }) => {
- return (
- <Markdown
- remarkPlugins={[remarkGfm]}
- components={
- {
- code(props: any) {
- const { children, className, node, ...rest } = props;
- const match = /language-(\w+)/.exec(className || '');
- return match ? (
- <SyntaxHighlighter {...rest} PreTag="div" language={match[1]}>
- {String(children).replace(/\n$/, '')}
- </SyntaxHighlighter>
- ) : (
- <code {...rest} className={className}>
- {children}
- </code>
- );
- },
- } as any
- }
- >
- {children}
- </Markdown>
- );
- };
-
- export default HightLightMarkdown;
|