feat: 完成 DOCX 通用结构映射与严格收口
This commit is contained in:
+31
-4
@@ -1,6 +1,6 @@
|
||||
# Markdown PDF 导出器进度
|
||||
|
||||
最后更新:2026-07-30
|
||||
最后更新:2026-07-31
|
||||
|
||||
## 1. 当前概况
|
||||
|
||||
@@ -207,6 +207,31 @@ Server Playwright 与 Desktop Electron 适配器,按主题 CSS SHA-256
|
||||
当前结构样式尚未绑定到 Pandoc AST,封面、版头、分节与标题去重留给
|
||||
阶段 12C。
|
||||
|
||||
`v0.6.0` 阶段 12C 已完成通用 Pandoc 结构映射和最终 OOXML 收口。统一
|
||||
语义文档模型先生成主题无关的结构计划,静态 Lua Filter 将公文版头、
|
||||
文号、签发人、落款、版记、简报元数据及项目/标书封面注入可编辑 Word
|
||||
段落,并绑定标准 Markdown 样式和 31 个 `Md*` 结构样式;转换过程不按
|
||||
主题 ID 分支。最终 DOCX 后处理生成真实分节,支持封面无页眉页脚、正文
|
||||
页码从 1 重启和 `SECTIONPAGES`,同时收口容器边框、背景、分页控制、
|
||||
表格内容区全宽、固定网格和行不拆分。标题策略会抑制 YAML 与首个 H1
|
||||
重复,所有内部结构标记在输出前强制清除。根级
|
||||
`npm run verify:docx-themes` 现在强制先用 Playwright Chromium 151
|
||||
重新采集 14 套主题各 56 个真实槽位,再由 Pandoc 3.9.0.2 生成最终矩阵;
|
||||
结果为 11/11 表格全宽、8/8 结构化主题字段完整、4/4 独立封面分节合格、
|
||||
重复标题失败 0、内部标记残留 0。下一步阶段 12D 继续使用真实 Word/WPS
|
||||
做视觉、编辑和互存回归,自动结构通过不替代客户端验收。
|
||||
|
||||
阶段 12C-R1 已完成 WordprocessingML 严格性修复。OOXML 写入层现在按
|
||||
模式顺序生成和规范化段落、文本、表格、单元格、分节及条件表格样式属性;
|
||||
样式生成将 CSS `justify` 映射为合法的 `w:jc="both"`,表格宽度仅写入
|
||||
正文表格而不写入表格样式,最终转换会移除 Pandoc 追加的重复样式 ID。
|
||||
内置校验器会拒绝乱序属性、重复样式 ID、非法两端对齐枚举和表格样式
|
||||
`w:tblW`。Microsoft Open XML SDK 2.20 审计确认 14 份最终 DOCX 的上述
|
||||
错误全部归零;Microsoft Word 和 WPS 均以禁止修复的只读方式正常打开
|
||||
14/14,Word 成功导出 31 页 PDF。逐页检查未发现内容丢失、裁切、重叠或
|
||||
空白正文。下一步按 R2 字体嵌入、R3 PDF 与 DOCX 视觉差异引擎、R4 全主题
|
||||
深度回归的顺序推进。
|
||||
|
||||
## 2. 已完成
|
||||
|
||||
### 2.1 项目骨架
|
||||
@@ -1140,9 +1165,11 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
|
||||
共用同一语义树,现有 HTML DOM 保持兼容;
|
||||
- 阶段 12B:已将跨端主题令牌接入动态 `reference.docx`,14 主题双引擎
|
||||
令牌和真实 Pandoc 模板矩阵通过;
|
||||
- 阶段 12C:完成 Pandoc 结构映射、封面分节、标题去重、表格宽度和
|
||||
分页控制;
|
||||
- 阶段 12D:完成 14 套主题的真实 Word/WPS 视觉与结构回归;
|
||||
- 阶段 12C:已完成通用 Pandoc 结构映射、封面真实分节、标题去重、
|
||||
表格内容区全宽、分页控制、OOXML 严格性和 14 主题真实 Word/WPS
|
||||
无修复打开门禁;
|
||||
- 阶段 12D:依次完成可分发字体嵌入、PDF 与 DOCX 自动视觉差异、14 套
|
||||
主题真实 Word/WPS 编辑互存和深度视觉回归;
|
||||
- 阶段 13:完成 Word/WPS 双向互存、外部主题兼容、体积和正式发布验收。
|
||||
|
||||
每个阶段验收通过后创建一个独立提交,再进入下一阶段。当前阶段不得混入
|
||||
|
||||
Reference in New Issue
Block a user