feat: 建立可复现字体包构建链

This commit is contained in:
SkyJourney
2026-07-31 21:52:36 +08:00
parent 9f96d51922
commit ae9fde3ac6
14 changed files with 1225 additions and 5 deletions
+24 -2
View File
@@ -305,6 +305,24 @@ DOCX 字体源总量调整为 48 MiB,与已验证的原生中文 TrueType 资
权限校验。字体二进制、独立安装包和 Docker 分发尚未进入仓库;下一步
FP3 只处理独立 NSIS 字体包、Docker 可选挂载及其安装/升级/卸载门禁。
阶段 12D-FP3-A 已建立独立 `packages/font-pack-builder` 和首个冻结字体包
配方 `mdtp-serif-sc@1.0.0`。主仓库只保存配方、OFL-1.1 许可证、上游提交
与派生说明,不保存约 41.37 MiB 字体二进制;发布人员从 Git 忽略的受信任
源目录提供 Regular 400、Bold 700 两组静态 TTF/WOFF2。构建器会校验
普通文件、路径包含关系、大小、SHA-256、WOFF2/TrueType 格式、字体内部
家族、字重、Web/DOCX 元数据一致性及文档嵌入权限,再原子组装版本化
`font-pack.json` 目录。相同版本内容一致时重复构建保持幂等,内容不同时
拒绝覆盖;字体包只匹配 `FandolSong``Mdpdf Fandol Song`,不会通过
`SimSun` 等通用别名错误替换仿宋、黑体、楷体或外部主题字体。
统一命令为 `npm run build:font-pack``npm run verify:font-pack`,默认
产物写入被 Git 忽略的 `output/font-packs/`。真实资产构建结果为
41,371,798 字节,两字形面均为 `MdTP Serif SC``fsType=0`、可安装嵌入;
应用层验收确认政企红头标准文件同时取得两组 WOFF2 和静态 TTF,其余三个
字体面继续使用主题安全降级。全仓 461 项测试、类型检查和生产构建通过。
本阶段未修改 NSIS 或 Docker;下一步 FP3-B 实现独立用户级字体包安装、
升级、卸载和主安装器同目录可选入口。
## 2. 已完成
### 2.1 项目骨架
@@ -1193,6 +1211,9 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
资源哈希与容量门禁、确定性版本选择和逻辑字体面匹配;应用层已将同一
解析结果用于主题 CSS 的 WOFF2 和 DOCX 的静态 TrueType,发行资产与
安装逻辑留在 FP3。
- `packages/font-pack-builder` 负责从仓库外冻结资源构建版本化字体包,
校验输入哈希、字体格式、内部元数据、嵌入权限、同版本不可变性并生成
可供注册器再次验证的构建报告;字体二进制和产物目录均不进入 Git。
- `packages/application/src/docx-export-service.ts` 负责 DOCX capability、
并发排队、总超时、取消、跨端转换编排、错误码和耗时诊断。
- `apps/desktop/src/desktop-application-controller.ts` 负责 Electron
@@ -1257,8 +1278,9 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
资源双重校验和字体候选匹配;
- 阶段 12D-FP2:已完成 Preview/PDF WOFF2 与 DOCX 静态 TrueType 的
同源字体解析、跨端受限资源入口、缓存指纹、降级诊断和真实字体包验证;
下一步 FP3 实现独立 NSIS 字体包与 Docker 可选挂载,最终由 R4 完成
14 套主题深度视觉回归;
- 阶段 12D-FP3-A:已完成独立字体包构建器、冻结配方、许可证与来源追踪、
同版本不可变门禁和真实资产构建;下一步 FP3-B 实现独立 NSIS 字体包,
FP3-C 再实现 Docker 可选挂载,最终由 R4 完成 14 套主题深度视觉回归;
- 阶段 13:完成 Word/WPS 双向互存、外部主题兼容、体积和正式发布验收。
每个阶段验收通过后创建一个独立提交,再进入下一阶段。当前阶段不得混入