我想将返回的代码转换bundleMDX
为我正在编写的 RSS 阅读器的字符串,这样我就可以使用它ReactDOMServer.renderToStaticMarkup(mdx)
:
上面的 Tailwind 博客使用next-mdx-remote
了它的工作原理,但我不确定如何在mdx-bundler
.
我尝试在MDXLayoutRenderer
using中包装代码mdxSource
:
import { MDXProvider } from '@mdx-js/react'
export const MDXLayoutRenderer = ({ mdxSource, ...rest }: IMDXLayoutRenderer): JSX.Element => {
const MDXLayout = React.useMemo(() => getMDXComponent(mdxSource), [mdxSource])
return <MDXLayout components={MDXComponents as any} {...rest} />
}
.
.
.
const mdx = (
<MDXProvider>
<MDXLayoutRenderer mdxSource={code} />
</MDXProvider>
)
但这会引发奇怪的 TS 错误,例如:
'MDXProvider' 指的是一个值,但在这里被用作一个类型。您的意思是“typeof MDXProvider”吗?ts(2749)
如果我创建mdx
一个函数并从中返回值,那么它也不起作用:
const mdx = () => (
<MDXProvider>
<MDXLayoutRenderer mdxSource={code} />
</MDXProvider>
)
我所需要的只是传递一个html
格式化的字符串,以便我可以将它发送到 RSS 包提要。
我的示例与 Tailwind 博客完全相同,但有 1 个区别:我使用的是mdx-bundler
代替next-mdx-remote
我怎么解决这个问题?