import type { CodeComponent } from 'react-markdown/lib/ast-to-react'; import { PrismAsyncLight } from 'react-syntax-highlighter'; import { oneDark } from 'react-syntax-highlighter/dist/cjs/styles/prism'; import styles from './CodeBlock.module.scss'; export const CodeBlock: CodeComponent = ({ inline, className, children }) => { if (inline) { return {children}; } // TODO: set border according to the value of 'customize:highlightJsStyleBorder' const match = /language-(\w+)(:?.+)?/.exec(className || ''); const lang = match && match[1] ? match[1] : ''; const name = match && match[2] ? match[2].slice(1) : null; return ( <> {name != null && ( {name} )} {String(children).replace(/\n$/, '')} ); };