release: 发布 v0.5.0
新增共享 Preview Engine,统一 Web 连续预览、快速分页、Playwright PDF 与 Electron PDF;实现稳定前缀复用和修改位置后的增量分页,保留媒体块按文档顺序串行回填与单次重排。 完善跨端链接与桌面文档工作流:Web 受控处理锚点和 HTTP/HTTPS 外链;Desktop 支持本地路径、file URI、系统协议、多窗口、同文件单例、Markdown 当前或新窗口打开,以及聚焦时外部文件变化提示。 统一四套内置主题名称并默认使用 Typora Github;修复连续预览双滚动条、ECharts 尺寸、PDF 本地链接、围栏代码块 Typora DOM 与重复行内样式;桌面发行链强制完整重建内嵌 Web,避免安装包携带陈旧资源。 发布 Web/Compose 与 Windows NSIS/ZIP:镜像 yixiong/md-to-pdf:v0.5.0 已健康部署;NSIS SHA-256 为 60992D1FDCA513F46346C78478537EB4159D8C0E76B41ECF3CDC25BE77707D92,ZIP SHA-256 为 D74F82293FB67126E583546CBA894569EFC9A0B1B6343FAC648CCC95F1D188D8,本机安装版已升级至 v0.5.0。 验证:全项目 238 项测试通过,类型检查、生产构建和 git diff --check 通过;Web 快速/连续/精确预览、Compose、Desktop 多窗口、窗口状态、文件关联、链接与代码块均完成真实环境验收。
This commit is contained in:
@@ -4,23 +4,27 @@
|
||||
导出工具。预览与 PDF 复用同一份安全 HTML、`#write` DOM、主题 CSS 和
|
||||
分页运行时,适合内网部署,也可以作为不依赖本地服务的桌面应用使用。
|
||||
|
||||
当前版本:`v0.4.5`。
|
||||
当前版本:`v0.5.0`。
|
||||
|
||||
## v0.4.5 主要能力
|
||||
## v0.5.0 主要能力
|
||||
|
||||
- 新建、打开和保存 Markdown;新文档可直接导出 PDF;
|
||||
- Windows 注册 `.md`、`.markdown` 文件关联,系统打开文件时自动加载;
|
||||
- 桌面窗口位置、尺寸和最大化状态延迟持久化,并在多显示器变化后自动
|
||||
修正到可见工作区;
|
||||
- “打开 Markdown”保留为独立主按钮,新建、保存和主题目录收纳在“更多”
|
||||
菜单;
|
||||
- 桌面端提供可直接放置自定义主题的本地目录;
|
||||
- 图片、Mermaid 和 ECharts 采用串行媒体分页:每个媒体块至多重排一次,
|
||||
严格保持文档顺序;
|
||||
- 媒体先按内容限宽计算基准高度。当上一页空白接近媒体所需空间时,允许
|
||||
将媒体内容等比例缩小回填;图片标题或图表标题保持原字号且与媒体成块;
|
||||
- 示例文档覆盖横图、竖图、Base64 图片、Mermaid、ECharts 以及不同尺寸
|
||||
的分页边界。
|
||||
- 新增“连续”预览模式:不分页、低测量开销,适合编辑时快速刷新;快速
|
||||
预览继续提供分页近似,精确预览和导出 PDF 保持权威分页;
|
||||
- 分页引擎从 Web 应用抽取为 `@md-to-pdf/preview-engine`,Web、
|
||||
Playwright PDF 与 Electron PDF 直接复用同一运行时;
|
||||
- 快速预览支持按修改位置复用稳定前缀,只重新分页受影响的后缀;
|
||||
- Web 链接只处理当前文档锚点和 HTTP/HTTPS 外链;外链在新浏览器窗口
|
||||
打开,本地路径及不支持协议不执行导航;
|
||||
- Desktop 支持 HTTP/HTTPS、系统协议、本地相对或绝对路径和 `file:`
|
||||
URI;Markdown 链接可选择在当前窗口或新窗口打开;
|
||||
- Desktop 支持多窗口和同一文件单例。窗口聚焦时检查磁盘文件变化,并
|
||||
提示是否重新加载;
|
||||
- 四个内置主题统一命名为 Typora Github、Typora Pixyll、
|
||||
Typora whitey 和 Typora Clean,默认使用 Typora Github;
|
||||
- 围栏代码块输出 Typora 兼容的 `.md-fences` DOM,并避免内部
|
||||
`<code>` 重复套用行内代码样式;
|
||||
- 桌面发行链会在每次打包前完整重建内嵌 Web 依赖,避免安装包携带陈旧
|
||||
前端资源。
|
||||
|
||||
## Web 与桌面端
|
||||
|
||||
@@ -30,6 +34,11 @@
|
||||
| 打开 Markdown | 浏览器文件选择 | 原生对话框、文件关联、第二实例转交 |
|
||||
| 保存 Markdown | 浏览器下载 | 原生另存为 |
|
||||
| 相对本地图片 | 默认不支持 | 以 Markdown 所在目录为安全边界 |
|
||||
| 文档内锚点 | 当前预览定位 | 当前预览定位 |
|
||||
| HTTP/HTTPS 链接 | 浏览器新窗口 | 系统默认浏览器 |
|
||||
| 本地文件链接 | 不执行 | 相对、绝对路径及 `file:` URI 均可尝试打开 |
|
||||
| 多文件 | 当前浏览器文档 | 多窗口、同一文件单例 |
|
||||
| 外部文件变化 | 不适用 | 窗口聚焦时提示重新加载 |
|
||||
| 远程图片 | 服务端受限下载并内嵌 | 应用服务受限下载并内嵌 |
|
||||
| 自定义主题 | Compose 只读挂载目录 | “更多 → 打开自定义主题目录” |
|
||||
| PDF 引擎 | 固定版本 Playwright Chromium | Electron 自带 Chromium |
|
||||
@@ -44,16 +53,18 @@ flowchart LR
|
||||
A["Markdown 与受限资源"] --> B["Renderer 安全渲染"]
|
||||
B --> C["统一 #write HTML"]
|
||||
D["主题 CSS 与导出配置"] --> C
|
||||
C --> E["共享分页运行时"]
|
||||
E --> F["Web 快速预览"]
|
||||
E --> G["Playwright Chromium"]
|
||||
E --> H["Electron Chromium"]
|
||||
G --> I["Web PDF"]
|
||||
H --> J["Desktop PDF"]
|
||||
C --> E["共享 Preview Engine"]
|
||||
E --> F["连续预览"]
|
||||
E --> G["快速分页预览"]
|
||||
E --> H["Playwright Chromium"]
|
||||
E --> I["Electron Chromium"]
|
||||
H --> J["Web PDF"]
|
||||
I --> K["Desktop PDF"]
|
||||
```
|
||||
|
||||
快速预览适合编辑反馈;精确预览直接展示服务端生成的 PDF,是 Web 最终
|
||||
分页的权威结果。桌面 PDF 复用相同分页载荷和运行时。
|
||||
连续预览适合高频编辑;快速预览提供客户端分页反馈;精确预览直接展示
|
||||
服务端生成的 PDF,是 Web 最终分页的权威结果。桌面 PDF 复用相同分页
|
||||
载荷和运行时。
|
||||
|
||||
## 项目目录
|
||||
|
||||
@@ -67,6 +78,7 @@ packages/
|
||||
renderer/ Markdown 到安全 #write HTML 的渲染管线
|
||||
application/ 共享渲染、主题注册和图片资源应用服务
|
||||
markdown-echarts/ ECharts YAML 协议、验证与浏览器 SVG 运行时
|
||||
preview-engine/ 连续预览、增量分页、媒体适配和 Paged.js 运行时
|
||||
themes/ 内置主题与主题清单
|
||||
deploy/ Dockerfile、Compose、Nginx 和部署文档
|
||||
docs/ 项目进度与主题开发说明
|
||||
@@ -75,9 +87,10 @@ logos/ 应用图标源文件
|
||||
.local/themes/ 本地开发和 Compose 自定义主题目录
|
||||
```
|
||||
|
||||
包依赖保持单向:`core` 提供基础协议;`markdown-echarts` 提供独立图表
|
||||
能力;`renderer` 消费两者生成安全 HTML;`application` 组合渲染器、主题
|
||||
和资源用例;三个 `apps/*` 只负责各自平台的界面、传输与 PDF 适配。
|
||||
包依赖保持单向:`core` 提供基础协议和链接分类;`markdown-echarts`
|
||||
提供独立图表能力;`renderer` 消费两者生成安全 HTML;`application`
|
||||
组合渲染器、主题和资源用例;`preview-engine` 消费渲染结果完成连续或
|
||||
分页排版;三个 `apps/*` 只负责平台界面、传输、链接动作与 PDF 适配。
|
||||
|
||||
各包的目录和用法:
|
||||
|
||||
@@ -85,6 +98,7 @@ logos/ 应用图标源文件
|
||||
- [core](packages/core/README.md)
|
||||
- [renderer](packages/renderer/README.md)
|
||||
- [markdown-echarts](packages/markdown-echarts/README.md)
|
||||
- [preview-engine](packages/preview-engine/README.md)
|
||||
|
||||
## 本地开发
|
||||
|
||||
@@ -114,8 +128,9 @@ npm run desktop:package
|
||||
npm run make -w @md-to-pdf/desktop
|
||||
```
|
||||
|
||||
产物位于 `apps/desktop/out/v0.4.5/`。正式安装包命名为
|
||||
`md-to-pdf-0.4.5-x86_64-Setup.exe`,同时生成免安装 ZIP;当前发行包
|
||||
桌面 `package` 和 `make` 会先完整重建内嵌 Web 及全部共享依赖,不能
|
||||
复用陈旧的 `apps/web/dist`。产物位于 `apps/desktop/out/v0.5.0/`。
|
||||
正式安装包命名为 `md-to-pdf-0.5.0-x86_64-Setup.exe`,同时生成免安装 ZIP;当前发行包
|
||||
未配置代码签名。
|
||||
|
||||
## 文档与媒体
|
||||
@@ -134,8 +149,9 @@ ECharts 围栏语法、支持系列和安全边界详见
|
||||
|
||||
## 主题
|
||||
|
||||
仓库内置 Typora 风格、GitHub、Pixyll 和 Whitey 四套主题。主题由
|
||||
版本化 `theme.json` 清单、主体 CSS、可选基础 CSS、打印 CSS 和资源组成。
|
||||
仓库内置 Typora Github、Typora Pixyll、Typora whitey 和
|
||||
Typora Clean 四套主题,默认使用 Typora Github。主题由版本化
|
||||
`theme.json` 清单、主体 CSS、可选基础 CSS、打印 CSS 和资源组成。
|
||||
|
||||
- 本地开发与 Compose:将主题目录放入 `.local/themes/`;
|
||||
- Desktop:从“更多 → 打开自定义主题目录”打开实际安装目录,再放入主题;
|
||||
|
||||
Reference in New Issue
Block a user