97 lines
3.1 KiB
Markdown
97 lines
3.1 KiB
Markdown
# 可选字体包构建
|
|
|
|
本目录只保存字体包配方、许可证和来源说明,不保存字体二进制。主程序、
|
|
Desktop 安装包和 Docker 主镜像不会因为这些配方增加字体体积。
|
|
|
|
## 源目录
|
|
|
|
发布人员需要在 Git 忽略的本地目录中准备配方声明的冻结资源。默认目录为:
|
|
|
|
```text
|
|
.local/font-pack-sources/mdtp-serif-sc/1.0.0/
|
|
├── MdTPSerifSC-Regular.ttf
|
|
├── MdTPSerifSC-Regular.woff2
|
|
├── MdTPSerifSC-Bold.ttf
|
|
└── MdTPSerifSC-Bold.woff2
|
|
```
|
|
|
|
构建器不会联网下载、转换或自动替换字体。每个输入文件都必须与配方声明的
|
|
字节数和 SHA-256 完全一致;TTF 还必须是无需运行时规范化的原生静态
|
|
TrueType,并具有可安装或可编辑的文档嵌入权限。
|
|
|
|
## 构建与验证
|
|
|
|
```powershell
|
|
npm run build:font-pack
|
|
npm run verify:font-pack
|
|
```
|
|
|
|
也可以显式指定源目录:
|
|
|
|
```powershell
|
|
npm run build:font-pack -- --source-root D:/font-pack-sources/mdtp-serif-sc/1.0.0
|
|
```
|
|
|
|
默认运行时字体包根目录为 `output/font-packs/root`,构建报告写入
|
|
`output/font-packs/build-report.json`,两者均被 Git 忽略。输出布局为:
|
|
|
|
```text
|
|
root/<pack-id>/<semver>/font-pack.json
|
|
```
|
|
|
|
同一 ID 和版本的内容完全相同时,重复构建保持幂等;只要任一文件发生
|
|
变化,构建器就会拒绝覆盖。发行内容变化必须提升字体包 SemVer。
|
|
|
|
当前 `mdtp-serif-sc@1.0.0` 只替换 `FandolSong` 与
|
|
`Mdpdf Fandol Song` 的 400/700 字重,不匹配 `SimSun` 等通用别名,避免
|
|
错误替换仿宋、黑体、楷体或普通外部主题字体。
|
|
|
|
## Windows 独立安装器
|
|
|
|
发布人员可以使用 electron-builder 锁定并校验的 NSIS 工具链构建独立
|
|
字体包安装器,不需要额外安装系统 NSIS:
|
|
|
|
```powershell
|
|
npm run build:font-pack:windows
|
|
```
|
|
|
|
默认产物为:
|
|
|
|
```text
|
|
output/font-packs/windows/
|
|
└── md-to-pdf-font-pack-mdtp-serif-sc-1.0.0-x86_64-Setup.exe
|
|
```
|
|
|
|
安装器使用当前用户权限,将整个 `mdtp-serif-sc` ID 安装到:
|
|
|
|
```text
|
|
%LOCALAPPDATA%/md-to-pdf/font-packs/mdtp-serif-sc/1.0.0/
|
|
```
|
|
|
|
它不向 Windows 系统字体目录注册字体。同一版本重装保持幂等,升级时先把
|
|
该 ID 的现有目录移入备份,再原子提升新版本;失败会回滚。独立卸载项只
|
|
删除安装器拥有的 `mdtp-serif-sc` ID,不影响其他字体包 ID。安装器支持
|
|
`/S` 静默安装和卸载。
|
|
|
|
## Desktop 伴随发行
|
|
|
|
组合构建命令为:
|
|
|
|
```powershell
|
|
npm run desktop:make:with-font-pack
|
|
```
|
|
|
|
该命令把主安装器和字体包安装器作为两个同目录文件发行。主安装器只编译
|
|
字体包文件名与 SHA-256,不嵌入字体二进制;仅当同目录文件存在且哈希完全
|
|
一致时,交互安装向导才显示默认勾选的字体包选项。字体包失败不回滚已安装
|
|
的主程序。
|
|
|
|
主安装器静默运行时默认不安装伴随字体包;只有显式传入以下参数才会安装:
|
|
|
|
```powershell
|
|
md-to-pdf-<version>-x86_64-Setup.exe /S /WITHFONTPACK=1
|
|
```
|
|
|
|
普通 `npm run make -w @md-to-pdf/desktop` 不启用伴随逻辑,避免本地残留的
|
|
生成文件影响常规桌面构建。
|