heikeson Logo柯索星澜

文档编写指南

柯索星澜文档库完整编写规范,涵盖 Frontmatter 配置、Markdown 语法、fumadocs 组件、图片增强、数学公式与 Mermaid 图表等所有可用写法

本文档是柯索星澜文档库的完整编写规范。所有贡献者必须遵循本文档的约定,以保证文档质量、一致性和可维护性。


一、目录结构与配置

1.1 文件映射

content/
├── index.mdx                  # 首页配置(hero / features)
└── docs/                      # 文档根
    ├── meta.json              # 侧边栏导航配置
    ├── index.mdx              # 文档首页
    ├── getting-started.mdx
    └── theming/               # 子目录 = 侧边栏分组
        ├── meta.json          # 分组配置
        ├── theme-config.mdx
        └── theme-development.mdx
文件对应 URL规则
docs/index.mdx/docsindex 为目录默认页
docs/getting-started.mdx/docs/getting-started文件名即路径段
docs/theming/theme-config.mdx/docs/theming/theme-config子目录构建嵌套路径

文件名统一使用 kebab-case(小写 + 连字符),如 getting-started.mdxtheme-config.mdx。推荐英文命名以保证可读性。

1.2 根目录 meta.json

content/docs/meta.json 定义侧边栏的节点顺序和分组结构:

{
  "title": "文档",
  "pages": [
    "index",
    "getting-started",
    "configuration",
    "theming",
    "excce",
    "frequent-questions"
  ]
}

pages 数组每一项对应 文件名(不含 .mdx子目录名

1.3 子目录 meta.json

子目录通过独立的 meta.json 配置分组标题、描述和子页面排序:

{
  "title": "主题系统",
  "description": "主题配置与开发指南",
  "defaultOpen": false,
  "pages": [
    "theme-config",
    "theme-development"
  ]
}
字段类型说明
titlestring分组在侧边栏中的显示名称
descriptionstring鼠标悬停提示
defaultOpenbooleantrue 默认展开,false 默认折叠
pagesstring[]子页面排序,对应文件名(不含 .mdx

pages 中严禁出现 .mdx 后缀。写 "pro.mdx" 会被解析为 pro.mdx.mdx 导致路径错误,必须写成 "pro"

1.4 首页配置(content/index.mdx)

首页由 content/index.mdx 的 Frontmatter 驱动,数据结构如下:

---
title: 站点标题
hero:
  title: 渐变色主标题
  description: 粗体副标题
  tagline: 灰色标语
  actions:
    - text: 主按钮
      href: /docs/getting-started
      variant: primary
    - text: 次按钮
      href: /docs
    - text: 外部链接
      href: https://example.com
      external: true
features:
  - icon: 🚀
    title: 特性标题
    description: 特性描述
---
字段说明
hero.title渐变色大标题
hero.description粗体副标题
hero.tagline灰色标语
hero.actions[].text按钮文字
hero.actions[].href按钮链接
hero.actions[].variant"primary" = 蓝色主按钮,省略 = 灰色次按钮
hero.actions[].externaltrue 则用 <a target="_blank">
features[].iconemoji 图标
features[].title特性名
features[].description特性描述

二、Frontmatter 配置

每篇 .mdx 文档头部必须包含 YAML Frontmatter,用 --- 包裹。

2.1 字段一览

---
title: 文档标题
description: 简要描述
date: 2025-09-14
lastModified: 2026-01-28
index: 0
slug: custom/path
---
字段类型说明
titlestring必填。h1 标题,同时作为侧边栏节点名和 SEO 标题
descriptionstring必填。SEO 描述、搜索索引摘要
dateYYYY-MM-DD创建日期
lastModifiedYYYY-MM-DD手动指定最后修改时间(未设则使用 Git 提交时间)
indexnumber排序权重,值越小越靠前
slugstring覆盖文件路径生成的 URL(如 "excce/getti"/docs/excce/getti

datelastModified 接受 YYYY-MM-DD 格式字符串或 ISO 日期字符串。

使用 slug 自定义路径时,确保不与已有页面冲突。自定义 slug 会经规范化处理(小写、清理特殊字符)。


三、基础 Markdown 写法

3.1 标题

## 二级标题 — 会在右侧 TOC 生成锚点
### 三级标题
#### 四级标题(尽量少用)

禁止使用 #(h1):页面标题由 Frontmatter 的 title 自动生成。

3.2 文本样式

写法效果语法
加粗加粗文字**加粗文字**
斜体斜体文字_斜体文字_
删除线删除文字~~删除文字~~
行内代码const a = 1`const a = 1`
下划线下划线<u>下划线</u>
上标文字^[1]^文字^[1]^
下标文字~[2]~文字~[2]~

3.3 链接

[博客](https://blog.heikeson.com)

3.4 图片

![描述](https://example.com/image.jpg)
![描述](https://example.com/image.jpg "鼠标悬停提示")

3.5 引用

> 引用内容
>
> 可以多段落

3.6 列表

有序列表:

1. 第一步
2. 第二步
3. 第三步

无序列表:

- 项目一
  - 子项
    - 孙项

任务列表:

- [ ] 未完成
- [x] 已完成

3.7 代码块

```yaml
title: 示例
description: YAML 示例
```

常用语言标签: bash yaml json nginx ini tsx ts js go markdown txt sql html css

3.8 表格

| 安装方式           | 难度 | 适用场景         |
| ------------------ | ---- | ---------------- |
| **Docker Compose** | ⭐⭐ | 生产环境         |
| **源码部署**       | ⭐⭐⭐⭐ | 开发环境     |

对齐控制::--- 左对齐、:---: 居中、---: 右对齐。

3.9 分隔线

---

四、fumadocs 内置组件

以下组件在 src/mdx-components.tsx 中已全局注册,.mdx 文件中可以直接使用,无需导入

4.1 Callout 提示框

<Callout type="info" title="信息提示">
这是一条提示信息。
</Callout>

<Callout type="warn" title="警告">
这是一个警告信息。
</Callout>

type 可选值:"info" | "warn"

效果示例

这就是 Callout 组件渲染的结果,信息提示框。

效果示例

这是警告 Callout,用于强调注意事项。

4.2 Tabs 标签页

<Tabs items={["选项一", "选项二"]}>
  <Tab value="选项一">
    **内容一**
    - 支持 Markdown
  </Tab>
  <Tab value="选项二">
    内容二
  </Tab>
</Tabs>

<Tabs>items 属性值为 JSX 表达式数组,需要用 {[]} 包裹而非 "[]"

4.3 Accordions 手风琴折叠面板

<Accordions type="single">
  <Accordion title="折叠项标题">
    展开后的内容,支持 Markdown。
  </Accordion>
  <Accordion title="另一项">
    更多内容。
  </Accordion>
</Accordions>

type 可选值:"single"(单项展开) | "multiple"(多项同时展开)

4.4 Files / Folder / File 文件树

<Files>
  <Folder name="src" defaultOpen>
    <File name="index.ts" />
    <File name="app.tsx" />
  </Folder>
  <File name="package.json" />
</Files>

FolderdefaultOpen 属性控制默认展开状态。


五、图片增强写法

5.1 图片描述(Caption)

![](https://example.com/image.jpg){caption="底部描述文字"}

5.2 图片尺寸

![](https://example.com/image.jpg){width=800 height=600}

5.3 图片对齐

![](https://example.com/image.jpg){align=left}
![](https://example.com/image.jpg){align=center}
![](https://example.com/image.jpg){align=right}

默认对齐为居中。

5.4 组合使用

![风景照片](url "悬停提示"){caption="描述" width=800 align=center}
属性说明示例
caption底部 <figcaption> 描述{caption="示意图"}
width宽度(像素){width=800}
height高度(像素){height=600}
align对齐left / center / right

六、数学公式

6.1 行内公式

当 $a \ne 0$ 时,$ax^2 + bx + c = 0$ 有两个解。

6.2 块级公式

$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

支持标准 LaTeX 语法。


七、Mermaid 图表

7.1 流程图

```mermaid
graph TD
    A[开始] --> B{条件判断}
    B -->|是| C[执行操作]
    B -->|否| D[结束]
    C --> D
```

7.2 时序图

```mermaid
sequenceDiagram
    participant U as 用户
    participant S as 服务器
    U->>S: 发送请求
    S-->>U: 返回响应
```

7.3 Git 分支图

```mermaid
gitGraph
   commit
   branch develop
   checkout develop
   commit
   checkout main
   merge develop
   commit
```

Mermaid 支持的图表类型:flowchart sequenceDiagram classDiagram stateDiagram erDiagram gantt pie gitGraph 等。


八、HTML 增强写法

8.1 彩色文字

<font color="#00ffff" size="7">青色大字体</font>

8.2 文本对齐

<p style={{ textAlign: "center" }}>居中文字</p>
<p style={{ textAlign: "right" }}>右对齐文字</p>

8.3 自定义 div

<div className="flex flex-col items-center text-center">
  <p>居中容器中的内容</p>
</div>

MDX 中 JSX 属性使用 className={} 而非 class=""。内嵌 JSX 表达式用 {} 包裹。


九、新增文档流程

  1. content/docs/ 下创建 .mdx 文件(kebab-case 命名)
  2. 写入 Frontmatter(至少 title + description
  3. content/docs/meta.jsonpages 数组中添加文件名(不含 .mdx
  4. 若放在子目录,子目录需创建 meta.json,根 meta.json 引用子目录名
  5. 运行 pnpm postinstall 重建 .source 导入文件
  6. 运行 npx tsc --noEmit 确认编译通过
  7. 运行 pnpm dev 预览

重要提醒

新增、删除或移动 .mdx 文件后,必须重新构建 source 文件:

pnpm postinstall

否则页面将无法在侧边栏显示。


十、发布前检查清单

  • Frontmatter 包含 titledescription
  • 未使用 #(h1)——标题从 ## 开始
  • 代码块指定了语言标签
  • 图片有 alt 描述
  • meta.json 引用时文件名无 .mdx 后缀
  • 子目录配备 meta.json
  • npx tsc --noEmit 无错误
  • pnpm postinstall 重建通过

Last updated on

On this page