总体架构
工作区由唯一的代码子项目 clis/docdoc 构成,构建产物是一个自包含的 Node CLI:同一份 dist/index.js 既是命令行客户端,也是 docdoc serve 服务器进程。
D2 渲染失败,查看源码
direction: right
cli: docdoc single binary
cli.build: build / preview
cli.manage: add / del
cli.serve: serve process
src: Markdown source {
shape: cylinder
}
artifacts: Static artifacts {
shape: package
}
registry: registry.json {
shape: page
}
browser: Browser {
shape: cloud
}
src -> cli.build: read
cli.build -> artifacts: build
artifacts -> cli.serve: host
cli.manage -> cli.serve: Management API
cli.serve -> registry: read / write
cli.serve -> browser: HTTP / HTTPS
组件职责
| 组件 | 职责 |
|---|---|
| CLI 命令 | 构建、预览、站点注册与删除、systemd 生命周期管理 |
| serve 进程 | 多站点托管:静态内容、目录树与全文搜索查询、管理 API、ACME/TLS |
| 构建管线 | Markdown → HTML 的纯函数转换,产物自包含 |
| 注册表 | DataDir/registry.json,站点的唯一持久化状态 |
零外部组件
服务器进程的全部状态为:站点产物目录、注册表 JSON 文件、TLS 证书文件。不依赖外部数据库、消息中间件、缓存服务;站点路由表缓存在进程内存,重启后从注册表文件加载。
工作区布局
| 目录 | 内容 |
|---|---|
clis/docdoc |
唯一代码子项目(CLI + Server) |
docs/api_references |
API 参考文档站 |
docs/developer_handbook |
本开发手册 |
docs/user_manual、docs/openapi |
外部文档站 |
