
Markdown
如何撰写文档
介绍
Fumadocs 为 MDX(一种标记语言)提供了许多有用的扩展。以下是 Fumadocs UI 默认 MDX 语法的简要介绍。
MDX 不是 Fumadocs 唯一支持的格式。实际上,您可以使用任何渲染器,如
或 CMS。 next-mdx-remote
Markdown
我们使用 GFM(GitHub 风格的 Markdown),这是 Markdown(CommonMark)的超集。 参见 GFM 规范。
# Heading ## Heading ### Heading #### Heading Hello World, **Bold**, _Italic_, ~~Hidden~~ ```js console.log('Hello World'); ``` 1. First 2. Second 3. Third - Item 1 - Item 2 > Quote here  | Table | Description | | ----- | ----------- | | Hello | World |
自动链接
内部链接使用
外部链接将获得默认的
[My Link](https://github.github.com/gfm) This also works: https://github.github.com/gfm.
MDX
MDX 是 Markdown 的超集,支持 JSX 语法。 它允许您导入组件,并直接在文档中使用它们,甚至导出值。
import { Component } from './component'; <Component name="Hello" />
参见 MDX 语法 了解更多信息。
卡片
对于添加链接很有用,默认包含。
<Cards> <Card href="https://nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating" title="Fetching, Caching, and Revalidating" > Learn more about caching in Next.js </Card> </Cards>
图标
您可以为卡片指定图标。
import { HomeIcon } from 'lucide-react'; <Cards> <Card icon={<HomeIcon />} href="/" title="Home"> Go back to home </Card> </Cards>
无 href
<Cards> <Card title="Fetching, Caching, and Revalidating"> Learn more about `fetch` in Next.js. </Card> </Cards>
Fetching, Caching, and Revalidating
Learn more about
提示框
对于添加提示/警告很有用,默认包含。
<Callout>Hello World</Callout>
标题
指定提示框标题。
<Callout title="Title">Hello World</Callout>
Title
类型
您可以指定提示框的类型。
(默认)info- warn
- error
<Callout title="Title" type="error"> Hello World </Callout>
Title
Hello World
自定义组件
标题
每个标题会自动应用锚点,它会清理空格等无效字符。(例如,
# Hello `World`
目录设置
目录 (TOC) 将基于标题生成,您还可以自定义标题的效果:
# Heading [!toc] This heading will be hidden from TOC. # Another Heading [toc] This heading will **only** be visible in TOC, you can use it to add additional TOC items. Like headings rendered in a React component: <MyComp />
自定义锚点
您可以添加
# heading [#my-heading-id]
您也可以将其与目录设置链接起来,例如:
# heading [toc] [#my-heading-id]
要将人们链接到特定标题,请将标题 ID 添加到哈希片段:
前言
我们支持 YAML 前言。这是一种指定文档常见信息(例如标题)的方式。 将其放在文档顶部。
--- title: Hello World --- ## Title
有关前言可用属性的列表,请参见页面约定。
代码块
默认使用 Rehype Code 支持语法高亮。
```js console.log('Hello World'); ```
您可以为代码块添加标题。
```js title="My Title" console.log('Hello World'); ```
高亮行
```tsx <div>Hello World</div> // [\!code highlight] <div>Hello World</div> <div>Goodbye</div> <div>Hello World</div> ```
高亮单词
您可以通过添加
```js // [\!code word:config] const config = { reactStrictMode: true, }; ```
差异
```ts console.log('hewwo'); // [\!code --] console.log('hello'); // [\!code ++] ```
console.log('hewwo'); console.log('hello');
标签组
您可以使用
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; <Tabs items={['Tab 1', 'Tab 2']}> <Tab value='Tab 1'> ```ts console.log('A'); ``` </Tab> <Tab value='Tab 2'> ```ts console.log('B'); ``` </Tab> </Tabs>
注意,您可以在 MDX 文件中添加 MDX 组件,而不必导入它们。
console.log('A');
console.log('B');
使用 Typescript Twoslash
编写带有悬停类型信息和检测到类型错误的 Typescript 代码块。
默认情况下未启用。参见 Twoslash。
图片
所有内置内容源都能正确处理图片。
图片会自动为

可选功能
一些您可以启用的可选插件。



