import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter' import { oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism' interface MarkdownRendererProps { content: string } const MarkdownRenderer = ({ content }: MarkdownRendererProps) => { const cleanContent = content .replace(/^---\s*\n.*?\n---\s*\n/s, '') .replace(/<[^>]*>/g, '') return ( { const match = /language-(\w+)/.exec(className || '') const isInline = !match return !isInline ? ( {String(children).replace(/\n$/, '')} ) : ( {children} ) }, a: ({ children, href }) => ( {children} ), table: ({ children }) => (
{children}
), thead: ({ children }) => ( {children} ), tbody: ({ children }) => ( {children} ), th: ({ children }) => ( {children} ), td: ({ children }) => ( {children} ), ul: ({ children }) => ( ), ol: ({ children }) => (
    {children}
), li: ({ children }) => (
  • {children}
  • ), h1: ({ children }) => (

    {children}

    ), h2: ({ children }) => (

    {children}

    ), h3: ({ children }) => (

    {children}

    ) }} > {cleanContent}
    ) } export default MarkdownRenderer