跳到主要内容

文档站维护指南

本文说明 docs-site/ 的结构、写作规则和验证方式,供维护者在新增模块文档、架构说明、API 参考和部署指南时使用。

文档站边界

文档站是一个 Docusaurus 3 项目,位于仓库根目录的 docs-site/

路径作用
docs-site/docs/正文文档,按 Docusaurus doc id 组织
docs-site/sidebars.ts左侧导航配置
docs-site/docusaurus.config.ts站点标题、导航栏、页脚、Markdown 策略和部署地址
docs-site/package.json本地开发、构建、类型检查和 Cloudflare Pages 命令
.github/workflows/deploy-docs-cloudflare.ymlmain 分支上文档变更后的自动构建与发布

默认语言是 zh-Hans,文档内容应优先使用中文。除非目标页面已经是英文,新增页面不要混用中英文标题。

维护流程

新增或改写文档时,按这个顺序处理:

  1. 先读相关代码、AGENTS.md.github/guidelines/
  2. 判断页面类型:入门、模块指南、架构说明、API 参考、配置说明、部署说明或排障说明。
  3. docs-site/docs/ 下选择合适目录。
  4. 新建 Markdown 页面并补齐 front matter。
  5. 如果页面需要出现在导航中,同步更新 docs-site/sidebars.ts
  6. docs-site/ 目录运行构建或类型检查。
cd docs-site
pnpm typecheck
pnpm build

package.json 中的本地开发命令是:

pnpm dev

它会以 docusaurus start --port 4300 启动文档站。

页面放置规则

文档类型推荐目录示例
新人入门、配置、部署docs-site/docs/quick-start.mdconfiguration.mddeployment.md
公共基础设施docs-site/docs/building-blocks/web.mdinfrastructure.md
架构专题docs-site/docs/architecture/api-layering.mdcommon-attachment.md
业务模块docs-site/docs/modules/<module>/modules/cmskit/architecture.md
FreeKit 基础库docs-site/docs/freekit/core.mdmodularity.md
Docker 运维docs-site/docs/docker/Docker-MySql.mdDocker-Nginx.md
源码镜像或专项分析docs-site/docs/source/settings.mdvalidation-strategy.md

不要把模块文档放到顶层目录,也不要把架构专题混到模块目录里。一个页面只解决一个主题。

写作结构

模块文档推荐使用这个结构:

---
title: 模块名称
sidebar_label: 模块名称
---

# 模块名称

## 模块定位

## 目录结构

## 核心实体

## 应用服务

## API 与权限

## 配置项

## 启动与注册

## 扩展点

## 验证方式

## 相关源码

架构文档推荐使用这个结构:

---
title: 架构主题
sidebar_label: 架构主题
---

# 架构主题

## 解决的问题

## 组件关系

## 运行流程

## 依赖方向

## 扩展点

## 约束与风险

## 相关源码

API 参考应优先说明真实路由、权限、请求 DTO、响应 DTO 和错误行为。不要只复制 Controller 方法名。

代码依据

文档结论必须能回到源码。写文档时优先引用这些入口:

主题入口
模块注册src/Services/Host/FreeKit.DI/E.cs
主 API 宿主src/Services/Host/FreeKit.Host/Program.cs
Job 宿主src/Services/Host/FreeKit.Job.Host/Program.cs
Message 宿主src/Services/Host/FreeKit.MessageHandler.Host/Program.cs
模块启动src/Services/**/**ModuleStartup.cs
Controllersrc/Services/**/Controllers/*.cs
应用服务src/Services/**/Application/**/*.cs
DTO/接口src/Services/**/Application/**/Contracts/*.cs
权限常量src/Services/**/Contracts/*Permissions.cs
测试src/Test/FreeKit.Tests/**/*.cs

如果源码和旧文档冲突,以源码为准,并在改文档时删除过期说法。

图示规则

复杂运行关系优先使用 Mermaid。模块依赖适合 flowchart,时序流程适合 sequenceDiagram

flowchart LR
Host[FreeKit.Host] --> DI[FreeKit.DI]
DI --> Identity[Identity]
DI --> Platform[Platform]
DI --> CmsKit[CmsKit]
DI --> Member[Member]

图示只表达关键关系,不要把所有类都塞进一张图。

使用 AI 写文档

本仓库已经安装项目级 Skill:

.github/skills/code-documentation-docs-architect/SKILL.md

需要 AI 编写或改写文档时,可以这样描述任务:

使用 code-documentation-docs-architect 写 docs-site 文档。
目标读者:新接手该模块的后端开发。
文档类型:模块指南。
请先阅读相关源码、AGENTS.md 和 .github/guidelines/,再修改 docs-site/docs/ 下的 Markdown。
要求:结论必须来自源码;新增页面要更新 sidebars.ts;示例命令要能运行;不要写营销文案。

如果是架构文档,把“文档类型”改成“架构说明”,并要求包含 Mermaid 图和相关源码列表。

发布链路

文档站在 main 分支发生这些路径变更时触发 Cloudflare Pages 发布:

  • docs-site/**
  • .github/workflows/deploy-docs-cloudflare.yml

工作流会在 docs-site/ 下执行:

pnpm install --frozen-lockfile
pnpm build

构建产物通过 Wrangler 发布到 Cloudflare Pages 项目 freekit-pro