feat: 建立可复现字体包构建链

This commit is contained in:
SkyJourney
2026-07-31 21:52:36 +08:00
parent 9f96d51922
commit ae9fde3ac6
14 changed files with 1225 additions and 5 deletions
+47
View File
@@ -0,0 +1,47 @@
# 可选字体包构建
本目录只保存字体包配方、许可证和来源说明,不保存字体二进制。主程序、
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` 等通用别名,避免
错误替换仿宋、黑体、楷体或普通外部主题字体。