Logo拾光
    Markdown
    2025/03/05

    Markdown

    如何撰写文档

    介绍

    Fumadocs 为 MDX(一种标记语言)提供了许多有用的扩展。以下是 Fumadocs UI 默认 MDX 语法的简要介绍。

    MDX 不是 Fumadocs 唯一支持的格式。实际上,您可以使用任何渲染器,如 next-mdx-remote 或 CMS。

    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
    
    ![alt](/image.png)
    
    | Table | Description |
    | ----- | ----------- |
    | Hello | World       |

    自动链接

    内部链接使用 next/link 组件,允许预取并避免硬重载。

    外部链接将获得默认的 rel="noreferrer noopener" target="_blank" 属性以增强安全性。

    [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>

    Fetching, Caching, and Revalidating

    Learn more about caching in Next.js

    图标

    您可以为卡片指定图标。

    import { HomeIcon } from 'lucide-react';
    
    <Cards>
      <Card icon={<HomeIcon />} href="/" title="Home">
        Go back to home
      </Card>
    </Cards>

    Go back to home

    The home page of Fumadocs.

    无 href

    <Cards>
      <Card title="Fetching, Caching, and Revalidating">
        Learn more about `fetch` in Next.js.
      </Card>
    </Cards>

    Fetching, Caching, and Revalidating

    Learn more about fetch in Next.js.

    提示框

    对于添加提示/警告很有用,默认包含。

    <Callout>Hello World</Callout>
    Hello World

    标题

    指定提示框标题。

    <Callout title="Title">Hello World</Callout>

    Title

    Hello World

    类型

    您可以指定提示框的类型。

    • info(默认)
    • warn
    • error
    <Callout title="Title" type="error">
      Hello World
    </Callout>

    Title

    Hello World

    自定义组件

    参见所有 MDX 组件和可用选项。

    标题

    每个标题会自动应用锚点,它会清理空格等无效字符。(例如,Hello World 变为 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 />

    自定义锚点

    您可以添加 [#slug] 来自定义标题锚点。

    # heading [#my-heading-id]

    您也可以将其与目录设置链接起来,例如:

    # heading [toc] [#my-heading-id]

    要将人们链接到特定标题,请将标题 ID 添加到哈希片段:/page#my-heading-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>
    ```

    高亮单词

    您可以通过添加 [!code word:<match>] 来高亮特定单词。

    ```js
    // [\!code word:config]
    const config = {
      reactStrictMode: true,
    };
    ```

    差异

    ```ts
    console.log('hewwo'); // [\!code --]
    console.log('hello'); // [\!code ++]
    ```
    console.log('hewwo'); 
    console.log('hello'); 

    标签组

    您可以使用 <Tab /> 组件与代码块一起使用。

    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。

    图片

    所有内置内容源都能正确处理图片。 图片会自动为 next/image 优化。

    ![Image](/image.png)

    可选功能

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

    全部文章

    作者

    avatar for Mkdirs模板
    Mkdirs模板

    分类

    • 公司
    • 新闻
    介绍Markdown自动链接MDX卡片图标无 href提示框标题类型自定义组件标题目录设置自定义锚点前言代码块高亮行高亮单词差异标签组使用 Typescript Twoslash图片可选功能

    更多文章

    主题
    新闻产品

    主题

    为 Fumadocs UI 添加主题

    avatar for Mkdirs模板
    Mkdirs模板
    2025/01/15
    什么是 Fumadocs
    公司产品

    什么是 Fumadocs

    介绍 Fumadocs,一个可以打破常规的文档框架

    avatar for Fox
    Fox
    2025/04/01
    手动安装
    公司产品

    手动安装

    从零开始创建一个新的 Fumadocs 项目

    avatar for Mkdirs模板
    Mkdirs模板
    2025/03/14

    邮件列表

    加入我们的社区

    订阅邮件列表,及时获取最新消息和更新