feat: 实现 DOCX 主题令牌归一化

This commit is contained in:
SkyJourney
2026-07-30 22:57:46 +08:00
parent d2acc9c5ce
commit 7f72258126
18 changed files with 1571 additions and 25 deletions
+16 -3
View File
@@ -168,8 +168,20 @@ DOCX 映射。
Electron Chromium 150 中采集 56 个槽位,共检查两组各 784 个槽位;
两端逐槽位 `font-family``font-size``color` 差异为 0。统一复现
命令为 `npm run verify:docx-theme-styles`,结果写入被 Git 忽略的
`output/docx-theme-styles/`当前尚未将快照归一化为 Word 令牌或接入
Pandoc 转换链路。
`output/docx-theme-styles/`
阶段 11 的计算样式归一化已经完成:通用解析器支持浏览器长度到 Word
磅值、RGB/RGBA/十六进制颜色、带引号字体候选、粗斜体、上下划线、行距、
字符间距、段落缩进与间距、四边内边距和边框、百分比宽度、分页控制;
结构令牌额外保留封面最小高度、Flex 纵向对齐、CSS outline 四边框近似
以及 `display:none` 隐藏字段。旧版仅声明 `docxStyle.preset` 的内置主题
自动升级为 `auto-with-overrides`,因此主题 CSS 成为主来源,清单覆盖
优先,原预设只在槽位缺失时降级;真正的 `explicit` 模式仍完全跳过 CSS。
Playwright Chromium 151 与 Electron Chromium 150 分别对 14 套主题生成
14 组、每组 56 槽位的 Word 令牌,跨引擎令牌差异为 0,无无效 CSS 诊断。
当前 14 条有效诊断均为 Flex/Grid 结构近似、商务标书超粗装饰边收敛或
经典标书双层边框与轮廓偏移近似,将在下一阶段由语义文档结构层消费。当前尚未将令牌接入
`reference.docx` 或 Pandoc 转换链路。
## 2. 已完成
@@ -1098,7 +1110,8 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
- 阶段 11:已建立独立 `packages/docx-theme-engine`、标准语义槽位及
快照、令牌、来源、置信度、诊断协议、标准探针 DOM 和平台无关采集器;
Playwright/Electron 真实采集、主题指纹缓存和双引擎一致性矩阵已通过;
下一步实现 CSS 计算值到 Word 样式令牌的归一化
CSS 计算值到 Word 样式令牌的通用归一化、清单覆盖、预设降级和结构
近似诊断已通过 14 主题双引擎矩阵;下一步由统一语义文档模型消费令牌;
- 阶段 12:建立统一语义文档模型,完成 Front Matter、封面、分节、
表格宽度和分页控制;
- 阶段 13:完成 Word/WPS 双向互存、外部主题兼容、体积和正式发布验收。