feat: 完成 Docker DOCX 与可选字体包部署链

This commit is contained in:
SkyJourney
2026-08-01 08:56:20 +08:00
parent 7f2c169405
commit 3081c02887
8 changed files with 577 additions and 9 deletions
+14 -2
View File
@@ -71,8 +71,20 @@ Docker 安装目标:
/usr/local/bin/pandoc -> /opt/pandoc/3.9.0.2/bin/pandoc
```
构建必须校验 SHA-256 后再解压。下载、校验和解压应位于同一构建层,不在
最终镜像保留下载缓存。
官方 Linux 二进制 tarball 实际只包含 `bin/pandoc`,不包含许可证和版权
文件。Docker 构建会从同一个不可变版本标签 `3.9.0.2` 取得以下文件,并
分别执行 SHA-256 校验后放入相同运行目录:
```text
COPYING.md
SHA-2569D56CAC92294E206AF026A5502BEE0FED77200B08B51EC28AA63C9EFDA4DCFDD
COPYRIGHT
SHA-256842E33EF01625E93F85BEBB8BAC83AA570186B7AA77A09971257CC29F8F60740
```
二进制归档、许可证和版权文件均在独立下载阶段获取与校验,最终镜像只
复制 `/opt/pandoc/3.9.0.2/`,不保留下载缓存、Curl 或下载阶段依赖。
`v0.6.0` 正式验证范围为 Linux amd64。官方同时提供 arm64 包,但在完成
Playwright、Pandoc 和 DOCX 全链路验证前,不宣称 arm64 发布支持。
+30 -2
View File
@@ -362,6 +362,32 @@ Desktop 已统一 Markdown 保存/另存为、PDF 导出和 DOCX 导出的默认
阻断保存对话框。状态持久化失败不会把已经成功写入的用户文件误报为保存
失败。该优化作为独立提交完成,不与 FP3-C Docker 部署改动混合。
`v0.5.1` Web 与 Desktop 旧渲染引擎曾在整篇代码围栏全部标记为 JSON 时
出现缩进视觉丢失;任一围栏改为其他语言后其余 JSON 又会恢复。使用原始
问题文档在当前 `v0.6.0` Chromium 快速预览中验证,首次完整渲染的 14 个
JSON 代码块均保留 2/4/6 级缩进,将首个围栏改为 `text` 后的增量渲染也
保持正常。该问题标记为随 `v0.6.0` 渲染引擎重构消失,不再追加生产修复。
阶段 12D-FP3-C 已完成 Docker v0.6.0 DOCX 运行链和可选字体包挂载。镜像
构建补齐统一语义文档、DOCX 主题映射、字体包注册器和 DOCX 引擎工作区,
并将 Lua Filter 作为明确运行资产复制;独立下载阶段对 Pandoc `3.9.0.2`
Linux amd64 二进制、GPL 许可证和版权文件分别执行固定 SHA-256 校验,
最终运行镜像只保留 `/opt/pandoc/3.9.0.2/`,不包含下载工具或可选字体包。
基于已验证 Chromium 运行层生成的验收镜像内容大小为 681,961,183 字节,
以非 root `pwuser` 运行,DOCX capability 精确识别 Pandoc `3.9.0.2`
Compose 通过 `MD_TO_PDF_FONT_PACK_DIR` 将宿主机字体包根目录只读挂载到
`/app/.local/font-packs`,并以 `MD_TO_PDF_APP_VERSION=0.6.0` 执行兼容性
判断。静态部署契约覆盖 DOCX workspace、Pandoc 版本与三组哈希、Lua
Filter、只读挂载以及 Docker 构建上下文排除。统一真实门禁为
`npm run verify:docker-font-pack`:空目录场景正常降级;有效
`mdtp-serif-sc@1.0.0` 提供不可变缓存 WOFF2,并进入真实 DOCX 字体表和
字体部件;篡改 WOFF2 后注册器拒绝整个字体包,主题 CSS 不再注入字体包,
但 DOCX 仍通过主题字体安全降级并成功生成。三组隔离 Compose 容器、网络
和临时目录均在验收后清理。全仓 94 个测试文件、480 项测试、类型检查、
生产构建和 `git diff --check` 均通过。下一步 R4 进入 14 套主题深度视觉
回归。
## 2. 已完成
### 2.1 项目骨架
@@ -1320,8 +1346,10 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
- 阶段 12D-FP3-A:已完成独立字体包构建器、冻结配方、许可证与来源追踪、
同版本不可变门禁和真实资产构建;
- 阶段 12D-FP3-B:已完成独立用户级 NSIS 字体包、原子安装/升级/卸载、
主安装器同目录哈希校验和显式静默开关;下一步 FP3-C 实现 Docker 可选
挂载,最终由 R4 完成 14 套主题深度视觉回归;
主安装器同目录哈希校验和显式静默开关;
- 阶段 12D-FP3-C:已完成 Docker v0.6.0 DOCX/Pandoc 运行链、字体包只读
可选挂载及空目录、有效包、损坏包三场景真实部署门禁;下一步由 R4 完成
14 套主题深度视觉回归;
- 阶段 13:完成 Word/WPS 双向互存、外部主题兼容、体积和正式发布验收。
每个阶段验收通过后创建一个独立提交,再进入下一阶段。当前阶段不得混入