设计理念

docdoc 的每一个取舍都围绕同一个目标:文档源码在 git 仓库里,站点在线上永远是最新的。理解这几条理念,后面的安装、发布与配置就都有章可循。

构建期烘焙,产物纯静态

侧栏、搜索索引、翻页链接、目录树全部在构建期生成并落盘为静态文件,运行期不解析 Markdown、不查询数据库。服务器只做一件事:把请求路由到对应站点的静态产物。

  • 读端零状态:任何静态文件服务器都能正确回源产物,行为完全可预测
  • 服务器内存占用与站点规模无关,一台小规格主机也能托管全组织文档
  • 构建失败保留旧版本继续服务,坏提交不会把线上站打挂

git 即发布

文档源在 git 仓库时,服务器以轮询方式跟踪 ref 指向的提交:git push 之后约一分钟内自动重新克隆构建上线,发布端不需要构建、不需要上传产物大包。仓库是唯一事实源,回滚就是 git revert。

单一二进制,客户端服务器一体

一条 docdoc 命令身兼两职:本机做构建与预览,服务器上同一个二进制做托管。没有客户端/服务器版本矩阵要维护,docdoc --version 一眼看清两侧差距。

gh-only 私有分发

docdoc 仓库为私有,安装、升级与 git 部署统一走 GitHub CLI(gh)认证;产物随仓库提交,安装不执行任何构建脚本,pnpm add -g 即装即用。

托管内置,不依赖外部网关

域名路由、路径前缀、ACME 自动 HTTPS 签发与续期、管理 API 都内置在托管服务里,不需要在前面再架一层 Nginx。注册站点带域名,证书自动签发热加载。

内置写作约定

目录组织、kebab-case 命名、TOC 宏、接口文档标记、三份元数据文件(站内搜索 ?元数据)——约定优先于配置,任何新人拿到源目录就知道往哪写、怎么排序、怎么发布。