Skip to main content

Customizing Markdown Components

使用MDX,您可以用自定义实现替换Markdown呈现的每个HTML元素. 这样,您可以在渲染时使用一组设计系统组件.

import { MDXProvider } from "@mdx-js/react"
import * as DesignSystem from "your-design-system"

export default function Layout({ children }) {
  return (
    <MDXProvider
      components={{
        // Map HTML element tag to React component
        h1: DesignSystem.H1,
        h2: DesignSystem.H2,
        h3: DesignSystem.H3,
        // Or define component inline
        p: props => <p {...props} style={{ color: "rebeccapurple" }} />,
      }}
    >
      {children}
    </MDXProvider>
  )
}

注意 :您还可以向MDXProvider提供您自己的自定义组件,使它们在编写MDX时全局可用. 您可以在《 MDX中的导入和使用组件》指南中找到有关此模式的更多详细信息.

可以使用MDXProvider自定义以下组件:

TagNameSyntax
pParagraph
h1Heading 1#
h2Heading 2##
h3Heading 3###
h4Heading 4####
h5Heading 5#####
h6Heading 6######
thematicBreakThematic break***
blockquoteBlockquote>
ulList-
olOrdered list1.
liList item
tableTable`---
trTable row`This
td/thTable cell
prePre```js console.log()```
codeCode`console.log()`
emEmphasis_emphasis_
strongStrong**strong**
deleteDelete~~strikethrough~~
codeInlineCode`console.log()`
hrBreak---
aLinkhttps://mdxjs.com or [MDX](https://mdxjs.com)
imgImage![alt](https://mdx-logo.now.sh)

How does this work?

传递给MDXProvider的组件用于呈现Markdown创建的HTML元素. 它使用React的Context API .

Edit this page on GitHub
Docs
Tutorials
Plugins
Blog
Showcase

by  ICOPY.SITE