Nextra 3.0 已发布。 阅读更多
文档指南高级渲染表格

渲染表格

本指南介绍了在 MDX 中渲染表格的不同方法,包括 GFM 语法和字面 HTML 标签。

GFM 语法

在 Markdown 中,最好通过 GFM 语法 来编写表格。

MDX
| left   | center | right |
| :----- | :----: | ----: |
| foo    |  bar   |   baz |
| banana | apple  |  kiwi |

将被渲染为

居中
foobarbaz
bananaapplekiwi

字面 HTML 表格

如果您尝试使用字面 HTML 元素 <table><thead><tbody><tr><th><td> 渲染表格 - 您的表格将没有样式,因为 MDX 不会将字面 HTML 元素替换为 useMDXComponents() 提供的组件

用法

MDX
<table>
  <thead>
    <tr>
      <th>Country</th>
      <th>Flag</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>France</td>
      <td>🇫🇷</td>
    </tr>
    <tr>
      <td>Ukraine</td>
      <td>🇺🇦</td>
    </tr>
  </tbody>
</table>

示例


国家国旗
法国🇫🇷
乌克兰🇺🇦

更改默认行为

如果这仍然让您感到困惑,并且您想为您的表格使用常规的字面 HTML 元素,请执行以下操作

安装 remark-mdx-disable-explicit-jsx

npm i remark-mdx-disable-explicit-jsx

设置

next.config.mjs 文件中 nextra 函数内配置插件

next.config.mjs
import nextra from 'nextra'
import remarkMdxDisableExplicitJsx from 'remark-mdx-disable-explicit-jsx'
 
const withNextra = nextra({
  theme: 'nextra-theme-docs',
  themeConfig: './theme.config.tsx',
  mdxOptions: {
    remarkPlugins: [
      [
        remarkMdxDisableExplicitJsx,
        { whiteList: ['table', 'thead', 'tbody', 'tr', 'th', 'td'] }
      ]
    ]
  }
})
 
export default withNextra()