文档与 Wiki 维护
单一真源
主要阅读入口是 GitHub Pages 上的 VitePress 双语文档网站。每篇文章每种语言只维护一份:
- 中文:
docs/wiki/,保留现有文件名和仓库相对链接。 - 英文:
docs/en/,一篇文章一个独立 Markdown 文件。 - 页面对应关系:
docs/pages.json,slug在/en/和/zh/下相同。 - 网站固定文案:
docs/.vitepress/locales/en.mjs、zh-CN.mjs,一种语言一个文件。
.site/、.vitepress/dist/ 和 Wiki checkout 都是生成结果。修改文章时在同一 PR 同步两种语言,不能用英文摘要代替完整译文。
README.md(英文)与 readme/README.zh-CN.md(中文) 是同等项目入口。其中架构图是刻意保留的摘要,架构变更时应与两份完整架构文章一同更新。前后端 README 保留各自的包级入口用途。
页面组织
新增页面时:
- 在
docs/wiki/添加中文文章,在docs/en/添加英文对应文章。 - 在
docs/pages.json添加共同 slug、中文文件名和导航分组;网站导航标题在各语言模块的pages中维护。 - 两种语言的标题层级与章节顺序保持对应,切换语言才能保留所在章节。
- 从文档首页和相关文章添加可发现链接。
- 提交前运行检查、测试与生产构建。
生成后的地址为 /en/<slug>.html、/zh/<slug>.html,语言首页为 /en/、/zh/。源文章使用相对 .md 链接,方便在 GitHub 浏览;生成的章节 ID 用于对应语言切换,可读标题别名保留直接章节链接。
网站默认英文。首次访问根入口时,浏览器语言列表包含简体或繁体中文就自动中文,否则英文。下拉框手选保存在 afterglow.docs.locale 并优先使用。直接打开特定语言文章时保持该 URL 的语言,保证分享链接可预期。
本地开发需要 Python 3、Node.js 20+:
cd docs
npm ci
npm run dev启动 VitePress 前会生成页面;开发时修改源文章后重新运行 npm run prepare:docs。检查和预览:
npm run check
npm test
npm run build
npm run preview默认基础路径为 /Afterglow/。自定义域名或根路径部署使用 DOCS_BASE=/ npm run build;不同项目名使用 DOCS_BASE=/your-project/。Wiki 工作流的仓库变量 DOCS_SITE_URL 应与实际网站地址一致。
首次启用 GitHub Pages
维护者首次设置:
- 在仓库 Settings → Pages 中将 Source 选择为 GitHub Actions。
- 将文档源码与工作流合入
main,或在目标分支手动运行docs-pages。 - 从
github-pages环境及部署输出查看实际网址。
默认地址为 https://kldhsh123.github.io/Afterglow/。Fork 按仓库名称计算基础路径;自定义域名还需设置 Pages 域名并匹配基础路径。工作流支持手动输入 base_path 和仓库变量 DOCS_BASE。
Wiki 可选。初始化时在 Settings 启用 Wikis、限制为协作者编辑,并先创建 Home 页让 Wiki Git 仓库可 clone。sync-wiki 默认用 GITHUB_TOKEN;仓库策略要求独立凭据时使用 WIKI_TOKEN。
同步行为
.github/workflows/docs-pages.yml 对文档 PR 做检查和构建,不发布;推送到 main、发布 Release 或手动运行时构建并部署静态产物。Release 使用对应 tag 源码。PR 不获得部署权限,部署共用 concurrency group 避免并发覆盖。
.github/workflows/sync-wiki.yml 对文档 PR 做校验;只有 Release 和手动运行才写 Wiki。生成的平铺镜像保留旧中文页名,英文页使用 EN-<slug>,每页都有网站入口和对应语言链接。侧边栏同时提供两种语言。保留源中文标题以兼容旧 Wiki 章节链接。
Wiki checkout 使用 rsync --delete 严格镜像生成结果并排除 .git/;只有差异时才普通提交并推送,不 force push。发布不会改写仓库源文章。
生成脚本
.github/scripts/prepare_docs.py 读取两种语言源文章和页面映射,校验对应章节数量、源文件、内部页面链接,拒绝把源目录作为输出,生成网站页面树或平铺 Wiki。.github/scripts/prepare_wiki.py 仅处理生成 Wiki 中的链接校验与转换。
在仓库根目录安全预览 Wiki:
python3 .github/scripts/prepare_docs.py wiki --output /tmp/afterglow-wiki-preview不要直接把源目录传给 Wiki 链接转换器,它会原地改写输入。网站的渲染链接和翻译结构另由 docs/scripts/ 检查。
参考:
配置编辑器字段由后端 Settings、两份 .env.example 模板及双语环境变量参考生成。新增参数时须同步这些文件;构建会检查遗漏和模板值差异。编辑器界面文案放在站点语言文件中,Node 测试覆盖文件解析与生成。
品牌图片以 assets/brand/ 为准,生成器将选用的 logo 与 favicon 复制到网站生成目录。README 与导航栏使用现有浅色/深色版本,调整标志时应修改原始资源。