新增能力:桌面端新增 macOS 打包支持,electron-builder 增加独立 mac 配置块, 产出 dmg,按 arm64、x64 分别单独构建、不产出 universal 包;Pandoc 运行时清单 新增 darwin/arm64、darwin/x64 两个官方发行项(含独立许可证文件来源),桌面 Pandoc 候选路径与 prepare-pandoc-runtime.mjs 均已泛化为按 --platform/--arch 参数选取目标,不再只认 Windows x64。AGENTS.md 不再硬编码 Windows 绝对路径与 强制 PowerShell 语法,改为按当前 Shell 与仓库实际位置自适应。 问题修复:修复解压内置 Pandoc 时未保留 Unix 可执行权限位的问题(unzipSync 不保留压缩包内权限,已补 chmod 0o755);修复根 package.json 中 build:web-runtime/dev/desktop:dev 三个脚本的构建顺序错误 (@md-to-pdf/application 被排在其依赖的 @md-to-pdf/preview-engine 之前,在 没有历史 dist 残留的全新环境中会导致类型解析失败);修正 packages/docx-engine/tests/pandoc-runtime.test.ts 与 apps/desktop/tests/markdown-file.test.ts 中依赖宿主 OS 或路径分隔符的测试 断言,避免这些用例只能在特定平台上通过。 验证结果:docx-engine 包 93 项测试、desktop 包 62 项测试(61 通过 + 1 项 Windows 专属用例按预期跳过)均通过;全项目类型检查、生产构建通过, git diff --check 无空白错误。跳过依赖 Git 忽略的真实客户文档语料(tmp/)的 test:docx-real-world-corpus 与 test:docx-release-gate-suites 后,其余全部 工作区测试均通过;这两步需要接入真实语料的机器上单独执行。本机 macOS (Apple Silicon)实测 npm run package:mac:arm64 全链路成功,内置 Pandoc 3.9.0.2 完成下载、哈希校验与真实 DOCX 冒烟转换;实际截图确认窗口、macOS 原生菜单栏、编辑器工具栏、中文字体与实时预览渲染正常。 兼容与部署:版本统一为 0.6.4。本版本仅完成开发基础设施与验证,未构建正式 发行文件:没有产出真实签名的 dmg、没有重新构建 Windows 安装包,也没有重新 构建 Docker 镜像;正式 macOS 发行产物与 Windows/Docker 同步验证留待 DOCX 发布门禁阶段完成后一并发布。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5N6pcbjV4jVfXrcH3NcLP
12 KiB
12 KiB
变更日志
本文档记录 MorphDoc(原 Markdown PDF 导出器)的重要版本变更。
格式参考 Keep a Changelog,版本号遵循
Semantic Versioning。发布时以对应版本章节作为
Gitea Release 页面正文的基础;构建产物、校验和及详细验收记录可继续写入
docs/releases/v<version>.md。
Unreleased
变更
- 暂无。
0.6.4 - 2026-08-26
新增
- 桌面端新增 macOS 打包能力:
electron-builder增加独立mac配置块,产出dmg,按 arm64、x64 分别单独构建,不产出 universal 包(内置完整 Chromium/Electron 与固定版本 Pandoc,合并双架构会让单包体积翻倍)。 - Pandoc 运行时清单新增
darwin/arm64、darwin/x64两个官方发行项及独立 许可证文件来源(macOS 官方 zip 本身不随附许可证文本);桌面 Pandoc 候选 路径与prepare-pandoc-runtime.mjs均已泛化为按--platform/--arch参数选取目标,不再只认 Windows x64。
修复
- 修复
apps/desktop/scripts/prepare-pandoc-runtime.mjs解压内置 Pandoc 时 未保留 Unix 可执行权限位的问题(unzipSync不保留压缩包内的权限信息), macOS/Linux 上解压出的二进制此前无法直接执行。 - 修复根
package.json中build:web-runtime、dev、desktop:dev三个 脚本的构建顺序错误:@md-to-pdf/application依赖@md-to-pdf/preview-engine,但被排在其构建之前,在没有历史dist/残留的全新环境(如全新克隆 + 全新npm install)中会导致类型解析失败。 - 修正
AGENTS.md中硬编码的 Windows 绝对路径与强制 PowerShell 语法,改为 按当前 Shell 与仓库实际位置自适应。 - 修正测试用例
packages/docx-engine/tests/pandoc-runtime.test.ts中硬编码 反斜杠路径分隔符的断言,避免该测试仅能在 Windows 宿主上通过。
验证
docx-engine包 15 个测试文件、93 项测试通过;类型检查通过。- 本机 macOS(Apple Silicon)实测:
npm run package:mac:arm64全链路成功, 内置 darwin-arm64 版 Pandoc 3.9.0.2 完成下载、哈希校验与真实 DOCX 冒烟 转换;未打包应用(--dir)可正常启动,主进程/渲染进程/GPU 进程/网络 服务进程均稳定运行,AppleScript 可正常触发退出。实际截图确认窗口、 macOS 原生菜单栏、Markdown 编辑器工具栏、中文字体与实时预览(标题、 任务列表、表格、行内公式、引用块)均渲染正常。 - 补跑跳过真实语料依赖的全部工作区测试与全项目类型检查、生产构建均
通过;
test:docx-real-world-corpus与test:docx-release-gate-suites依赖 Git 忽略的真实客户文档语料(tmp/),本机没有该目录,这两步 在当前环境下无法验证,留待接入真实语料的机器上执行。
兼容与部署
- 本版本仅完成开发基础设施与验证,未构建正式发行文件:没有产出真实签名 的 dmg、没有重新构建 Windows 安装包,也没有重新构建 Docker 镜像;正式 macOS 发行产物、Windows/Docker 同步验证留待后续门禁阶段完成后一并发布。
0.6.2 - 2026-08-26
修复
- 修复真实长文档中表格分页后的列宽、偏移和行样式丢失,冻结逻辑表格列轨并将 打印几何稳定传递到 Paged.js 分片。
- 修复 Markdown 表格中
<br>变体、连续换行、实体和行内代码的 DOCX 翻译, 避免换行逃逸到目标单元格段落之外。 - 修复全 JSON 围栏缩进、表格末行对齐、代码高亮和行内代码连续性。
- 改进 PDF 文本流排序和数值范围归一化,减少窄字符重叠、跨视觉行破折号及重复 表头映射造成的视觉比较误报。
验证
- 合成基线与长庆真实文档两套严格门禁为
280/280,M4N 复杂表格文档为140/140。 - 健康数据长文档残余误报为
6/115(5.22%),均核查为重复表头自动对齐或 取样错配,基础设施错误为 0。 - 全项目测试、类型检查、生产构建、正式 Docker、内置字体 NSIS/ZIP 和离线发行 归集通过。
发行与兼容性
- Desktop 安装器、免安装 ZIP 与 Docker 镜像统一为 0.6.2。
- Docker 继续内置固定 Chromium、Pandoc 3.9.0.2 和受校验字体包;Desktop 继续直接内置 Serif、Sans、Mono 字体,无需安装系统字体。
- Windows 安装器尚未进行 Authenticode 签名,仅适用于公司内部发布。
0.6.1 - 2026-08-04
修复
- 重构通用 CSS 到 WordprocessingML 翻译链,统一字体、字号、行距、段距、缩进、 边框、底纹、表格、引用和代码样式。
- 修复字体实际嵌入、中文标点字距、精确行距、打印媒体环境和 Markdown 行内代码 连续性问题。
验证
- 建立 14 套主题 × 两个方向 × 五组页边距的 140 场景视觉矩阵,
140/140全部通过。 - 四套独立封面执行 Chromium、Word、WPS 整页严格门禁,正文执行与物理分页无关 的语义块门禁。
- 源码服务、Docker Web API 和实际安装 Desktop 三条生产 DOCX 导出链通过。
发行与兼容性
- Serif、Sans、Mono 三套字体直接内置于 Desktop 安装器和免安装 ZIP,不再发布 独立字体安装器或字体 ZIP。
- Docker 内置固定 Chromium、Pandoc 3.9.0.2 和三套正式字体包。
0.6.0 - 2026-08-02
新增
- 新增原生可编辑 DOCX 导出,支持 Microsoft Word 与 WPS,并保留纸张、页边距、 字体、段落、标题、代码块、表格、媒体、封面、页眉页脚和页码配置。
- 建立通用主题到 DOCX 样式翻译引擎,覆盖 14 套内置主题。
- 新增可扩展 Markdown 工具栏,支持标题、强调、代码、引用、列表、任务列表、 分隔线及 M×N 表格。
- PDF 与 DOCX 统一收口至“导出”菜单,并提供生成进度提示。
变更
- 产品更名为“墨呈”,英文名 MorphDoc,并保留原 NSIS 安装身份以支持覆盖升级。
- Desktop 内置固定 Pandoc 3.9.0.2;Docker 内置 Chromium、Pandoc 和正式字体, 支持完全离线部署。
- 正式字体资产改由 Git LFS 管理,发行产物统一归集到
release/v<version>/。
修复
- 修复精确预览放大后的右侧留白、保存与导出默认路径、Desktop DOCX 媒体捕获 超时及品牌迁移后的安装目录问题。
0.5.1 - 2026-07-29
新增
- 新增 4 套红头、3 套正式文档和 3 套标书主题,内置主题总数增至 14 套。
- 支持主题推荐页边距、页面装饰、页眉页脚、页码和结构化公文、报告及标书 Front Matter。
- 内置 Fandol 中文字体、两份教程和 14 份主题示例。
- Desktop 增加新建、保存、另存为快捷键和未保存确认;另存为后跟随新路径。
修复
- 修复红头标题居中、正式文档字体、代码块长内容越界和大型代码块跨页留白。
- Docker Web 镜像补齐
samples目录。
兼容性
- 未声明主题推荐设置的主题继续使用原有 16mm 默认页边距。
0.5.0 - 2026-07-28
新增
- 新增共享 Preview Engine,统一 Web 连续预览、快速分页、Playwright PDF 与 Electron PDF 渲染链路。
- 新增连续预览和修改位置之后的增量分页,支持稳定前缀复用。
- Desktop 支持多窗口、同文件单例、本地路径与 Markdown 链接,以及聚焦时检测 外部文件变化。
- Web 统一处理文档锚点和 HTTP/HTTPS 外链。
变更
- 内置主题统一为 Typora Github、Typora Pixyll、Typora whitey 和 Typora Clean。
- Windows 安装包统一使用 NSIS,并提供免安装 ZIP。
修复
- 修复连续预览双滚动条、ECharts 尺寸、PDF 本地链接、围栏代码块样式和发行包 复用陈旧 Web 构建产物的问题。
0.4.5 - 2026-07-28
新增
- Web 与 Desktop 支持新建和保存 Markdown;Desktop 增加
.md、.markdown文件关联、单实例系统打开、自定义主题目录和窗口状态恢复。 - 新文档可按一级标题或首行生成合法文件名,并直接导出 PDF。
变更
- 图片、Mermaid 和 ECharts 改为按文档顺序串行执行媒体分页回填,每个媒体元素 至多重排一次,并保持标题原尺寸。
- Web 取消本地素材目录入口。
0.4.4 - 2026-07-27
变更
- Desktop 发行包仅保留简体中文和英文语言资源,显著缩减目录版、安装包和 ZIP 体积,同时保留 Chromium 图形与软件渲染后备组件。
0.4.3 - 2026-07-27
变更
- Windows Desktop 从 Squirrel 迁移到标准 NSIS 安装向导,支持安装范围和安装目录 选择。
- 安装包改用英文、无空格、包含版本与平台的文件名,并继续提供免安装 ZIP。
0.4.2 - 2026-07-27
变更
- 移除 Windows Desktop 原生应用菜单栏,使应用内容直接位于系统标题栏下方。
- 此版本仅更新 Desktop,Web 与 Docker Compose 继续保持 0.4.1。
0.4.1 - 2026-07-27
新增
- 支持 Web 素材目录、Desktop 同目录资源和受限公网图片下载。
- 支持图片标题、图片整块分页以及超高图片在单页内容区内自适应缩放。
修复
- 修复本地与网络图片的资源解析、自然尺寸解码和 PDF 分页边界问题。
0.4.0 - 2026-07-27
新增
- 首次发布 Electron Windows Desktop,复用与 Web 相同的渲染和 PDF 核心。
- 支持桌面 Markdown 文件选择、原生保存和离线 PDF 导出。
修复
- 固定桌面端英文可执行文件名,避免中文名称影响安装和自动化链路。
0.3.1 - 2026-07-27
新增
- 扩展 ECharts 第二阶段图表协议和示例覆盖,完善更多系列、坐标轴及组合图表。
0.3.0 - 2026-07-27
新增
- 新增 ECharts YAML 围栏、安全校验、浏览器 SVG 渲染和 PDF 输出。
- 增强编辑区折叠、页码导航和快速预览外层滚动交互。
修复
- ECharts 媒体块参与统一不可跨页处理,避免图表被分页裁断。
0.2.0 - 2026-07-27
新增
- 完善 Mermaid 配置、安全渲染、资源等待和预览缩放。
- 增强长文档分页、滚动同步和预览/PDF 边界处理。
变更
- 收敛 Web 预览和 Chromium PDF 的共享渲染抽象,减少链路分叉。
0.1.0 - 2026-07-26
新增
- 实现 Markdown 安全渲染核心、网页实时预览、本地主题兼容和导出设置。
- 支持真实分页预览、固定 Chromium PDF 导出和 PDF 精确预览。
- 支持长文档分页、页码导航、滚动同步以及 AIO Docker 容器部署。