新增能力:14 套主题按纵横方向与五组页边距组成的 140 场景视觉矩阵全部通过,封面执行整页严格门禁,正文执行分页无关的语义块门禁。 问题修复:统一 CSS 到 WordprocessingML 的通用翻译,修复字体嵌入、中文标点字距、精确行距、打印媒体与行内代码连续性,不包含按主题 ID 的特调。 发行变化:Desktop 安装器与免安装 ZIP 直接内置 Serif、Sans、Mono 三套字体包;NSIS 移除字体选择和伴随安装逻辑,不再发布独立字体安装器或字体 ZIP。正式附件收敛为 Desktop 安装器、Desktop ZIP、Docker 离线镜像、Web 部署包和发行说明。 部署兼容:Docker 镜像 md-to-pdf:v0.6.1 使用完整无缓存路径构建,固定 Chromium、Pandoc 3.9.0.2 和三套内置字体包;支持覆盖安装 v0.6.0,Windows 安装器保持未签名的内部发布状态。 验证结果:116 个测试文件、616 项测试、全项目类型检查、生产构建和 git diff --check 全部通过;140/140 视觉矩阵阻断失败和诊断失败均为 0;源码服务、Docker Web API 与实际安装 Desktop 的 DOCX 字体嵌入链路均通过。
88 lines
3.4 KiB
NSIS
88 lines
3.4 KiB
NSIS
!define MORPHDOC_DISPLAY_NAME "墨呈"
|
|
!define MORPHDOC_EXECUTABLE "MorphDoc.exe"
|
|
!define MORPHDOC_LEGACY_DISPLAY_NAME "Markdown PDF 导出器"
|
|
!define MORPHDOC_LEGACY_EXECUTABLE "md-to-pdf.exe"
|
|
!define MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY "Software\${APP_GUID}"
|
|
|
|
; 保持 APP_GUID 与卸载身份不变,但不再沿用旧产品名对应的安装目录。
|
|
; electron-builder 会从 INSTALL_REGISTRY_KEY 读取历史 InstallLocation;使用
|
|
; 独立键可让 v0.6.0 默认进入 MorphDoc 目录,同时仍由相同卸载身份识别旧版。
|
|
!define INSTALL_REGISTRY_KEY "Software\${APP_GUID}.MorphDoc"
|
|
|
|
!macro customInstall
|
|
DeleteRegKey SHCTX "${MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY}"
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown" \
|
|
"" \
|
|
"Markdown 文档"
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown\DefaultIcon" \
|
|
"" \
|
|
'"$INSTDIR\${MORPHDOC_EXECUTABLE}",0'
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown\shell\open\command" \
|
|
"" \
|
|
'"$INSTDIR\${MORPHDOC_EXECUTABLE}" "%1"'
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\.md\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown" \
|
|
""
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\.markdown\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown" \
|
|
""
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\Applications\${MORPHDOC_EXECUTABLE}\shell\open\command" \
|
|
"" \
|
|
'"$INSTDIR\${MORPHDOC_EXECUTABLE}" "%1"'
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\Applications\${MORPHDOC_EXECUTABLE}\SupportedTypes" \
|
|
".md" \
|
|
""
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\Applications\${MORPHDOC_EXECUTABLE}\SupportedTypes" \
|
|
".markdown" \
|
|
""
|
|
DeleteRegKey SHCTX \
|
|
"Software\Classes\Applications\${MORPHDOC_LEGACY_EXECUTABLE}"
|
|
Delete "$SMPROGRAMS\${MORPHDOC_LEGACY_DISPLAY_NAME}\${MORPHDOC_LEGACY_DISPLAY_NAME}.lnk"
|
|
RMDir "$SMPROGRAMS\${MORPHDOC_LEGACY_DISPLAY_NAME}"
|
|
Delete "$DESKTOP\${MORPHDOC_LEGACY_DISPLAY_NAME}.lnk"
|
|
CreateDirectory "$SMPROGRAMS\${MORPHDOC_DISPLAY_NAME}"
|
|
CreateShortCut \
|
|
"$SMPROGRAMS\${MORPHDOC_DISPLAY_NAME}\${MORPHDOC_DISPLAY_NAME}.lnk" \
|
|
"$INSTDIR\${MORPHDOC_EXECUTABLE}" \
|
|
"" \
|
|
"$INSTDIR\${MORPHDOC_EXECUTABLE}"
|
|
CreateShortCut \
|
|
"$DESKTOP\${MORPHDOC_DISPLAY_NAME}.lnk" \
|
|
"$INSTDIR\${MORPHDOC_EXECUTABLE}" \
|
|
"" \
|
|
"$INSTDIR\${MORPHDOC_EXECUTABLE}"
|
|
StrCpy $launchLink "$INSTDIR\${MORPHDOC_EXECUTABLE}"
|
|
System::Call 'shell32::SHChangeNotify(i 0x08000000, i 0, i 0, i 0)'
|
|
!macroend
|
|
|
|
!macro customUnInstall
|
|
DeleteRegKey SHCTX "${MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY}"
|
|
DeleteRegValue SHCTX \
|
|
"Software\Classes\.md\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown"
|
|
DeleteRegValue SHCTX \
|
|
"Software\Classes\.markdown\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown"
|
|
DeleteRegKey SHCTX \
|
|
"Software\Classes\Applications\${MORPHDOC_EXECUTABLE}"
|
|
DeleteRegKey SHCTX \
|
|
"Software\Classes\Applications\${MORPHDOC_LEGACY_EXECUTABLE}"
|
|
DeleteRegKey SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown"
|
|
Delete "$SMPROGRAMS\${MORPHDOC_DISPLAY_NAME}\${MORPHDOC_DISPLAY_NAME}.lnk"
|
|
RMDir "$SMPROGRAMS\${MORPHDOC_DISPLAY_NAME}"
|
|
Delete "$DESKTOP\${MORPHDOC_DISPLAY_NAME}.lnk"
|
|
Delete "$SMPROGRAMS\${MORPHDOC_LEGACY_DISPLAY_NAME}\${MORPHDOC_LEGACY_DISPLAY_NAME}.lnk"
|
|
RMDir "$SMPROGRAMS\${MORPHDOC_LEGACY_DISPLAY_NAME}"
|
|
Delete "$DESKTOP\${MORPHDOC_LEGACY_DISPLAY_NAME}.lnk"
|
|
System::Call 'shell32::SHChangeNotify(i 0x08000000, i 0, i 0, i 0)'
|
|
!macroend
|