文档编写指南
柯索星澜文档库完整编写规范,涵盖 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 | /docs | index 为目录默认页 |
docs/getting-started.mdx | /docs/getting-started | 文件名即路径段 |
docs/theming/theme-config.mdx | /docs/theming/theme-config | 子目录构建嵌套路径 |
文件名统一使用 kebab-case(小写 + 连字符),如 getting-started.mdx、theme-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"
]
}| 字段 | 类型 | 说明 |
|---|---|---|
title | string | 分组在侧边栏中的显示名称 |
description | string | 鼠标悬停提示 |
defaultOpen | boolean | true 默认展开,false 默认折叠 |
pages | string[] | 子页面排序,对应文件名(不含 .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[].external | true 则用 <a target="_blank"> |
features[].icon | emoji 图标 |
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
---| 字段 | 类型 | 说明 |
|---|---|---|
title | string | 必填。h1 标题,同时作为侧边栏节点名和 SEO 标题 |
description | string | 必填。SEO 描述、搜索索引摘要 |
date | YYYY-MM-DD | 创建日期 |
lastModified | YYYY-MM-DD | 手动指定最后修改时间(未设则使用 Git 提交时间) |
index | number | 排序权重,值越小越靠前 |
slug | string | 覆盖文件路径生成的 URL(如 "excce/getti" → /docs/excce/getti) |
date 和 lastModified 接受 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 图片

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>Folder 的 defaultOpen 属性控制默认展开状态。
五、图片增强写法
5.1 图片描述(Caption)
{caption="底部描述文字"}5.2 图片尺寸
{width=800 height=600}5.3 图片对齐
{align=left}
{align=center}
{align=right}默认对齐为居中。
5.4 组合使用
{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 表达式用 {} 包裹。
九、新增文档流程
- 在
content/docs/下创建.mdx文件(kebab-case 命名) - 写入 Frontmatter(至少
title+description) - 在
content/docs/meta.json的pages数组中添加文件名(不含.mdx) - 若放在子目录,子目录需创建
meta.json,根meta.json引用子目录名 - 运行
pnpm postinstall重建.source导入文件 - 运行
npx tsc --noEmit确认编译通过 - 运行
pnpm dev预览
重要提醒
新增、删除或移动 .mdx 文件后,必须重新构建 source 文件:
pnpm postinstall否则页面将无法在侧边栏显示。
十、发布前检查清单
- Frontmatter 包含
title和description - 未使用
#(h1)——标题从##开始 - 代码块指定了语言标签
- 图片有
alt描述 -
meta.json引用时文件名无.mdx后缀 - 子目录配备
meta.json -
npx tsc --noEmit无错误 -
pnpm postinstall重建通过
Last updated on