总体架构

工作区由唯一的代码子项目 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 外部文档站