import rangeParser from "parse-numeric-range"; import { PrismLight as SyntaxHighlighter } from "react-syntax-highlighter"; import tsx from "react-syntax-highlighter/dist/cjs/languages/prism/tsx"; import typescript from "react-syntax-highlighter/dist/cjs/languages/prism/typescript"; import scss from "react-syntax-highlighter/dist/cjs/languages/prism/scss"; import bash from "react-syntax-highlighter/dist/cjs/languages/prism/bash"; import markdown from "react-syntax-highlighter/dist/cjs/languages/prism/markdown"; import json from "react-syntax-highlighter/dist/cjs/languages/prism/json"; import { coldarkDark as defaulttheme } from "react-syntax-highlighter/dist/cjs/styles/prism"; import { BiCopy } from "react-icons/bi"; import { Components } from "react-markdown"; import { generateSlug } from "../utils/general"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import { useEffect } from "react"; SyntaxHighlighter.registerLanguage("tsx", tsx); SyntaxHighlighter.registerLanguage("typescript", typescript); SyntaxHighlighter.registerLanguage("scss", scss); SyntaxHighlighter.registerLanguage("bash", bash); SyntaxHighlighter.registerLanguage("markdown", markdown); SyntaxHighlighter.registerLanguage("json", json); export const StyledMarkdown = ({ html }: { html: string }) => { const MarkdownComponents: Components = { h1: (props: any) => { const arr = props.children; let heading = ""; for (let i = 0; i < arr.length; i++) { if (arr[i]?.type !== undefined) { for (let j = 0; j < arr[i].props.children.length; j++) { heading += arr[i]?.props?.children[0]; } } else heading += arr[i]; } const slug = generateSlug(heading); return (
);
},
};
return (