feat: 实现 Pandoc DOCX 转换服务

This commit is contained in:
SkyJourney
2026-07-30 15:05:50 +08:00
parent fa159d916f
commit bf43433d38
32 changed files with 2908 additions and 61 deletions
+15 -3
View File
@@ -106,6 +106,15 @@ Server 使用 Playwright Chromium、Desktop 使用 Electron Chromium
配置和元数据。本机真实 Pandoc 验收覆盖公文 A4 和自定义横向两组模板,
输出仍由标准 Word 段落、文本 Run、表格和代码文本组成,可继续编辑。
`v0.6.0` 阶段 7 已完成 Pandoc 转换服务:运行时按受信任配置、Desktop
资源、Docker 固定目录和 PATH 顺序发现并精确校验 3.9.0.2;默认模板和
动态模板使用稳定指纹与有界缓存。静态 Lua Filter 在 Pandoc AST 层将
普通图片、Mermaid 和 ECharts 替换为高分辨率 PNG,正文、表格、代码和
公式继续由 Pandoc 生成可编辑结构。每次转换使用独立临时目录和隔离的
data 目录,完成后校验 OOXML 并清理。共享应用服务提供有界并发、排队、
总超时、取消、关闭、capability、错误码和完整分阶段耗时;尚未新增
HTTP 路由、Desktop IPC 或导出按钮。
## 2. 已完成
### 2.1 项目骨架
@@ -985,8 +994,10 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
- `packages/application` 负责共享 Markdown 渲染和主题应用服务;
`apps/server``apps/desktop` 分别提供 HTTP 和 IPC 适配。
- `packages/docx-engine` 负责安全读取 Pandoc 默认模板、解析主题 DOCX
样式、生成动态 OOXML 部件和执行结构校验;Pandoc 进程定位、临时目录
与转换超时仍属于后续转换服务
样式、发现并校验固定 Pandoc、生成动态 OOXML、执行静态 Lua 媒体替换、
请求级临时转换和最终结构校验
- `packages/application/src/docx-export-service.ts` 负责 DOCX capability、
并发排队、总超时、取消、跨端转换编排、错误码和耗时诊断。
- `apps/desktop/src/desktop-application-controller.ts` 负责 Electron
多窗口、同文件单例、文件变化检测和平台链接动作;`main.ts` 负责启动
组装、协议和生命周期。
@@ -1022,7 +1033,8 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
- 阶段 4:已实现 CodeMirror 6 与可扩展基础 Markdown 工具栏;
- 阶段 5:已实现 DOCX 资源预处理和跨端 Chromium PNG 捕获适配器;
- 阶段 6:已实现动态 reference.docx、主题样式映射和真实 Pandoc 验证;
- 阶段 78:依次实现 Pandoc 转换服务以及 Web/Desktop 导出交互
- 阶段 7:已实现 Pandoc 运行时、Lua 媒体映射和共享转换服务;
- 阶段 8:实现 Web/Desktop DOCX 导出交互;
- 阶段 910:完成自动化和 Word/WPS 互操作验收,再构建正式发布产物。
每个阶段验收通过后创建一个独立提交,再进入下一阶段。当前阶段不得混入