我试图通过MDX访问markdown标记中的'href'数据,并进入自定义样式的NextJS组件。
目前我希望有人能够在markdown中写道:
[Website](http://www.website.com)
然后将数据放入一个自定义样式组件中,如下所示:
./components/md/Anchor.tsx
function Anchor({ hrefProp, text }) {
return <a className="text-blue-600 my-4 text-base" href={hrefProp} target="_blank" rel="noopener">{text}</a>;
}
export default Anchor;
从mdx到jsx的url 'http://website.com'
丢失了,我只能点击{text}。
理想情况下,我根本不需要改变markdown的语法来实现这一点。有什么建议吗?
我想也许可以尝试通过meta
或frontmatter
来放置href数据。
1条答案
按热度按时间goqiplq21#
假设您正在使用
@next/mdx
和@mdx-js/react
,您可以通过Anchor
组件中的href
prop访问href
prop。1.实现样式化链接组件:
1.将带有自定义链接组件的
MDXProvider
添加到_app.tsx
:1.在
next.config.js
中设置@next/mdx
:沙盒-https://codesandbox.io/p/sandbox/stackoverflow-76283549-h1fkf9?file=%2Fcomponents%2Fmdx%2FAnchor.tsx