| * Further refactoring candidates (custom block components not fitting general categories) | * Further refactoring candidates (custom block components not fitting general categories) | ||||
| * are noted in their respective files if applicable. | * are noted in their respective files if applicable. | ||||
| */ | */ | ||||
| export type MarkdownProps = { | |||||
| content: string | |||||
| className?: string | |||||
| customDisallowedElements?: string[] | |||||
| customComponents?: Record<string, React.ComponentType<any>> | |||||
| } | |||||
| export function Markdown(props: { content: string; className?: string; customDisallowedElements?: string[] }) { | |||||
| export const Markdown = (props: MarkdownProps) => { | |||||
| const { customComponents = {} } = props | |||||
| const latexContent = flow([ | const latexContent = flow([ | ||||
| preprocessThinkTag, | preprocessThinkTag, | ||||
| preprocessLaTeX, | preprocessLaTeX, | ||||
| form: MarkdownForm, | form: MarkdownForm, | ||||
| script: ScriptBlock as any, | script: ScriptBlock as any, | ||||
| details: ThinkBlock, | details: ThinkBlock, | ||||
| ...customComponents, | |||||
| }} | }} | ||||
| > | > | ||||
| {/* Markdown detect has problem. */} | {/* Markdown detect has problem. */} |