release: 发布 v0.6.1 DOCX 视觉一致性修复

新增通用 CSS 到 OOXML 翻译修复,统一字体、字距、精确行距、段落、列表、表格、引用、代码块与行内代码连续性,不引入按主题 ID 分支。

新增 MdTP Mono 并统一 Serif、Sans、Mono 三字体包的 Chromium 与 DOCX 使用链;字体声明、嵌入部件和 Word/WPS 实际采用均进入硬门禁。

重建封面整页及正文语义块视觉差分,14 套主题、纵横两个方向、五组页边距共 140 个真实场景全部通过,阻断失败和诊断失败均为零。

源码服务、Docker Web API 与实际安装 Desktop 的 red-briefing 导出均包含 5 个字体部件;Word/WPS 原生渲染和逐页复核通过。修复 Docker 构建上下文与运行层复用软链接,并完善 v0.6.1 版本、发行说明和发布归集。

验证:npm test(116 个文件、616 项测试)、npm run typecheck、npm run build、git diff --check 全部通过。Desktop 安装器与 ZIP、Docker v0.6.1 镜像已生成;Windows 产物仍为未签名内部发行。
This commit is contained in:
SkyJourney
2026-08-04 10:30:44 +08:00
parent b275c671fc
commit 2c5c1bd317
84 changed files with 4404 additions and 344 deletions
+2 -2
View File
@@ -137,8 +137,8 @@ Pandoc 采用 GNU GPL version 2 or later。项目将其作为未修改的独立
项目发布资产计划至少包含:
```text
MorphDoc-0.6.0-x86_64-Setup.exe
MorphDoc-0.6.0-x86_64.zip
MorphDoc-0.6.1-x86_64-Setup.exe
MorphDoc-0.6.1-x86_64.zip
pandoc-3.9.0.2-source.tar.gz
THIRD_PARTY_NOTICES.md
```
+23 -15
View File
@@ -1,6 +1,6 @@
# 墨呈进度
最后更新:2026-08-03
最后更新:2026-08-04
## 1. 当前概况
@@ -76,6 +76,14 @@ failure 还被外层白名单过滤,导致报告失败时总门禁仍可通过
无关的语义块局部视觉门禁,并对字体真实解析、嵌入和发布后三条生产链路
建立阻断验收。完整范围见 [v0.6.1 设计文档](V0.6.1_DESIGN.md)。
`v0.6.1` 最终视觉矩阵已完成:14 套内置主题 × 纵横两个方向 × 主题默认、
标准、紧凑、宽松、非对称装订五组页边距共 140 个场景全部通过,阻断失败
和诊断失败均为 0。修复集中在通用 CSS 到 OOXML 翻译、字体嵌入、中文
标点字距、精确行距、打印媒体和行内代码连续性,没有引入按主题 ID 分支。
同一 `red-briefing` 已通过源码服务、Docker Web API 和实际安装 Desktop
三条生产链,三份 DOCX 均约 24.17 MB、包含 5 个字体部件;安装版产物经
真实 Word/WPS 渲染均为 2 页 A4,封面和正文逐页复核通过。
`v0.6.0` 阶段 2 已完成 Pandoc 运行时探查:固定 `3.9.0.2`,官方
Windows ZIP 和 Linux amd64 tarball 的 SHA-256 均已核验;Linux 静态程序
可直接运行于 `node:22-bookworm-slim`。Desktop 安装包预计增加约
@@ -1502,21 +1510,21 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
总计 76 个阻断问题;`formal-feasibility--landscape--binding` 验证 A4
横向、非对称装订边距和独立封面整页 strict 门禁,封面因墨迹与边缘
IoU 不达标被阻断;全仓库测试、类型检查、生产构建和差异检查通过;
- 阶段 D进行中。D1/D2 将字体门禁扩展到 PDF 实际字体解析、DOCX
- 阶段 D已完成。D1/D2 将字体门禁扩展到 PDF 实际字体解析、DOCX
声明与嵌入数量,以及 Word/WPS 是否真正采用 Office 嵌入别名;新增
`mdtp-sans-sc@1.0.0`,与 `mdtp-serif-sc@1.0.0` 组成确定性双字体包,
14 套主题的 Server HTTP 生产链和 Office 实际字体使用门禁均已通过。
D3 已重建独立封面视觉门禁:预览与 DOCX 共用受限高度封面间距模型,
DOCX 支持可编辑双边框、超宽装饰边、非居中装饰元素宽度及 Office 页面
舍入;整页差分使用 4px 空间容差、0.6pt 纸张尺寸容差,墨迹 IoU、边缘
IoU、MAE、变化像素率阈值未放宽。四套独立封面主题 × 纵横两个方向 ×
主题默认、标准、紧凑、宽松、非对称装订五组边距共 40 个真实 Chromium、
Word、WPS 用例全部通过,严格失败为 0;主题各 10 例、方向各 20 例、
边距各 8 例。报告仍保留 2963 条正文诊断,未计作 D3 通过项。全仓库
测试、类型检查、生产构建和差异检查通过;下一步 D4 修复 14 套主题
正文语义块视觉差异;
- 阶段 E:完成源码服务、Docker Web API、Desktop 安装版发布后复验
- 阶段 F:完成 `v0.6.1` 版本、发行说明、发布产物、发布提交和标签
`mdtp-sans-sc@1.0.0` `mdtp-mono@1.0.0`,与
`mdtp-serif-sc@1.0.0` 组成确定性三字体包。D3 重建四套独立封面整页
门禁,40 个封面方向/边距组合全部通过。D4 完成正文语义块视觉收口:
通用翻译层统一处理字体、中文标点字距、精确行距、段落、列表、表格、
引用、代码块和行内代码连续性;最终 140 个 Chromium、Word、WPS
真实场景全部执行并通过,阻断失败和诊断失败均为 0;
- 阶段 E:已完成。源码服务、正式 Docker Web API 和实际安装 Desktop
使用同一 `red-briefing` 复验,三份 DOCX 均约 24.17 MB、包含 5 个字体
部件和 40,731,432 字节嵌入字体;安装版产物经 Word/WPS 渲染均为 2 页
A4,逐页视觉通过;
- 阶段 F:进行中。版本已更新为 `v0.6.1`,发行说明、Desktop 安装器与
ZIP、Docker 镜像均已生成;待完成最终全量验证、离线镜像归档复验
发布提交和 annotated tag
每个阶段验收通过后创建一个独立提交,再进入下一阶段。当前阶段不得混入
后续阶段的功能实现。
+21
View File
@@ -146,3 +146,24 @@ Word PDF 和 WPS PDF,并在报告中保留主题、方向、边距场景、导
- 单元测试、类型检查、生产构建和 `git diff --check` 通过;
- 发布报告中不存在被忽略的 failure;
- 完成真实 Word/WPS 逐页人工复核后才能发布。
## 6. 最终验收结果
2026-08-04 已完成全部发布条件:
- `14 × 2 × 5 = 140` 个场景全部实际执行,矩阵报告为
`complete: true``gatePassed: true`,阻断失败和诊断失败均为 0
- 四套独立封面共 40 个方向/边距组合全部通过 Chromium 对 Word/WPS
整页严格门禁;其余页面按跨页无关的语义块完成视觉比较;
- 通用 CSS 到 OOXML 翻译已覆盖字体、字距、精确行距、段落、列表、表格、
引用、代码和行内代码连续性,全程未增加按主题 ID 分支;
- Serif、Sans、Mono 三套可分发字体进入同一字体包解析链,140 个场景的
DOCX 均包含 5 个字体部件,Word/WPS 实际字体使用门禁通过;
- `red-briefing` 已分别从源码服务、正式 Docker Web API 和实际安装的
Desktop 导出;三份 DOCX 均约 24.17 MB、含 5 个字体部件,并通过真实
Word/WPS 渲染复核;
- 根级测试、类型检查、生产构建和空白检查通过;Docker 镜像、Desktop
安装器及免安装 ZIP 已生成。
最终矩阵报告位于 `output/docx-layout-visual-matrix/summary.json`,发行说明
见 [`docs/releases/v0.6.1.md`](releases/v0.6.1.md)。
+49
View File
@@ -0,0 +1,49 @@
# MorphDoc · 墨呈 v0.6.1
## 核心修复
- 重构通用 CSS 到 WordprocessingML 翻译链,统一处理字体族、东亚字体、
字号、行距、段距、缩进、边框、底纹、表格和代码样式,不包含按主题 ID
分支或单主题补丁。
- 新增可分发的 `mdtp-mono` 等宽字体,并将 Serif、Sans、Mono 三套字体包
同源用于 Chromium 预览/PDF 与 DOCX 静态嵌入;字体门禁同时检查字体表、
嵌入部件和 Word/WPS 的实际使用结果。
- 修复中文标点受 Word 自动字距调整造成的行宽漂移,并按浏览器实测值写入
Word 行距和网格参数。
- 修复 Markdown 行内代码在普通段落、列表和表格中被错误拆成独立段落的
问题;行内代码现在保持原段落连续排版,并进入视觉门禁。
- 统一 DOCX 媒体捕获的打印媒体环境,避免开发预览与正式 Web/Desktop
导出采用不同 CSS 分支。
## 视觉门禁
- 发布矩阵固定为 14 套内置主题 × 纵横两个方向 × 主题默认、标准、紧凑、
宽松、非对称装订五组页边距,共 140 个真实场景。
- 四套独立封面使用 Chromium 对 Word/WPS 的整页严格门禁;封面分页、
字体、位置、边框、背景、装饰和页码任一失败都会阻断发布。
- 正文按内容顺序和语义角色比较标题、段落、引用、列表、代码、表格及媒体,
允许流式分页造成物理页号变化,但不允许元素块视觉样式丢失。
- 外层聚合不再过滤像素、墨迹 IoU、边缘 IoU 或字体 failure;只有执行满
140 个场景且阻断失败为零时,报告才允许标记完整通过。
## 验证结论
- 全量矩阵 `140/140` 执行完成并通过,阻断失败和诊断失败均为 0。
- 同一 `red-briefing` 输入已通过源码服务、正式 Docker Web API 和实际
安装的 Desktop 三条生产链;三份 DOCX 均约 24.17 MB,包含 5 个字体
部件,嵌入字体字节数为 40,731,432。
- 已安装 Desktop 产物经真实 Word 和 WPS 渲染均为 2 页 A4,独立封面及
正文逐页复核通过。
- Docker 镜像内置三套字体包与 Pandoc 3.9.0.2;修复复用运行层时 Pandoc
软链接已存在导致构建失败的问题,并通过根级 `.dockerignore` 固定精简
构建上下文。
- 全项目测试、类型检查、生产构建及 `git diff --check` 通过。
## 发行与兼容性
- Desktop 安装器和免安装 ZIP 版本均为 0.6.1;支持覆盖 v0.6.0 安装。
- Docker 发布镜像为 `md-to-pdf:v0.6.1`,内容 ID 为
`sha256:1f901fd481ca078d62d22f975691373a160c716e3bfed05721d0704ae5098696`
- DOCX 保持原生可编辑段落、Run、列表和表格结构,没有以整页图片替代正文。
- 当前 Windows 安装器未进行 Authenticode 签名,适用于公司内部发布;
公开网络分发前建议增加代码签名。