Dr. Water 网站改造日志
本文件记录架构改造的范围、决策、验证结果和未解决风险。除非单独说明,所有时间均为 Asia/Shanghai。
改造原则
- 先保障线上可用性,再优化性能、内容结构和视觉表现。
- 每次发布必须能够验证中英文入口、语言切换和核心列表。
- 生产发布必须可预览、可回滚,不能由一次不完整构建直接覆盖线上站点。
- 大型媒体不应阻塞正常内容发布。
阶段计划
| 阶段 | 目标 | 验收条件 | 状态 |
|---|---|---|---|
| 0 | 建立日志与发布前检查 | 关键页面、双语导航和媒体规模可自动检查 | 进行中 |
| 1 | 修复双语构建与语言入口 | 中英文页面成对输出;每页具备有效语言切换链接 | 未开始 |
| 2 | 发布链路安全化 | 预览、备份/回滚和部署后检查;禁止未通过检查的发布 | 未开始 |
| 3 | 媒体与性能治理 | 视频从主站构建产物拆分;提供转码、封面和懒加载策略 | 未开始 |
| 4 | 内容模型与双语规范 | 统一内容类型、分类词表、文件命名和 front matter | 未开始 |
| 5 | 视觉、可访问性、SEO 与安全 | 响应式组件、替代文本、分享元数据、HTTP 安全头和隐私策略 | 未开始 |
已识别基线问题
- 构建产物约 6.7 GB,且中英文输出重复复制大型视频和音频。
-
make update使用rsync --delete直接覆盖生产目录,没有预览、回滚或发布后验收。 - 双语页面存在
index.en.qmd与index_en.qmd两种命名;部分英文页面 metadata 的lang设置错误。 - 一次发布曾出现英文页面存在但语言切换入口缺失的回归,说明双语后处理没有被验收。
- 首页和新闻列表的内容类型、分类语言与视觉组件不一致。
变更记录
2026-09-01 — 阶段 0:开始
- 建立本日志。
- 新增发布前检查脚本,验证网站输出目录、核心中英文入口和导航语言链接。
- 该脚本先作为诊断工具运行;在阶段 2 纳入部署门禁。
- 首次基线检查通过核心输出验证,但发现若干未配对/非标准命名的双语源文件,以及约 6.7 GB 的发布产物。遗留项将进入阶段 1 和阶段 3。
2026-09-01 — 阶段 1:双语源文件第一批修复
- 将三篇新闻的英文源文件从
index_en.qmd迁移为标准的index.en.qmd。 - 修复光华奖英文标题截断和错误的
lang: zhmetadata。 - 将博士招生页面的英文路径改为真正的英文内容与英文分类、描述和 metadata。
- 修复新视频英文页指向光华奖英文内容的内部链接。
- 博士后招聘页面仍有中文正文位于英文路径,列为下一批内容迁移项,暂不以 metadata 掩盖该问题。
2026-09-01 — 阶段 1:双语源文件第二批修复
- 将博士后招聘页完整翻译为英文,并同步修正 title、authors、分类、描述和
lang: enmetadata。
2026-09-01 — 阶段 2:安全发布设计
- 服务器现网目录约 6.7 GB,剩余空间约 9.8 GB,不能使用完整蓝绿副本。
- 新增硬链接暂存发布脚本:从线上当前目录建立同文件系统的硬链接副本,仅同步变化文件;验证中英文入口后以目录重命名切换,并保留旧目录作为回滚点。
-
make update兼容保留,但改为调用安全发布目标;make all不再直接执行旧的覆盖式 rsync。 - 发布前检查进一步要求每个标准
*.en.qmd源文件都必须在_site/en/生成对应输出,避免局部渲染造成英文站点保留旧内容。 - 完整双语构建通过逐页英文输出门禁:77 个英文页面均生成到
_site/en/,核心中英文导航切换链接存在。 - 默认 Make 流程不再自动复制机器私有的参考文献库,也不再自动执行
git add、提交和推送;这两项副作用保留为显式命令。 - 发布脚本提供
DRWATER_DEPLOY_DRY_RUN=1演练模式:会上传并验证暂存目录,然后删除该暂存目录,不切换线上网站。
2026-09-01 — 阶段 3:媒体输出去重(第一批)
- 验证 Nginx 未配置
disable_symlinks,可安全服务站内符号链接。 - 新增渲染包装脚本:英文构建完成后,
_site/en/etc/videos改为指向主站_site/etc/videos的相对符号链接。 - 发布前检查拒绝英文视频目录的第二份物理副本;预计减少约 2.8 GB 发布产物。