jonbio/components/MDXComponents.tsx

30 lines
731 B
TypeScript
Raw Normal View History

2023-07-07 11:17:22 +08:00
import React from 'react'
2023-07-08 15:23:25 +08:00
import { useMDXComponent } from 'next-contentlayer/hooks'
import { ComponentMap } from 'pliny/mdx-components'
2023-07-07 11:17:22 +08:00
import { TOCInline } from 'pliny/ui/TOCInline'
2023-07-08 15:23:25 +08:00
import Pre from './Pre'
import BlogNewsletterForm from './BlogNewsletterForm'
// import { BlogNewsletterForm } from 'pliny/ui/NewsletterForm'
2023-07-07 11:17:22 +08:00
import Image from './Image'
import CustomLink from './Link'
2023-07-08 15:23:25 +08:00
interface MdxProps {
code: string
[key: string]: any
2023-07-07 11:17:22 +08:00
}
export const MDXComponents: ComponentMap = {
Image,
TOCInline,
a: CustomLink,
pre: Pre,
BlogNewsletterForm,
}
2023-07-08 15:23:25 +08:00
export function Mdx({ code, ...rest }: MdxProps) {
const Component = useMDXComponent(code)
return <Component components={{ ...MDXComponents }} {...rest} />
}