71 lines
2.0 KiB
Markdown
71 lines
2.0 KiB
Markdown
# 项目计划(2026-02-07)
|
||
|
||
## 1. 当前状态
|
||
|
||
### 1.1 已完成
|
||
|
||
- Web 应用主链路可用:字体选择、预览、收藏、导出(SVG/PNG)
|
||
- 字体元数据自动生成:`scripts/generate-font-list.py`
|
||
- 预览性能策略已落地:防抖、批处理、并发、懒加载、几何缓存
|
||
- Python CLI 两条脚本可独立运行:`font2svg.py`、`pic2svg.py`
|
||
|
||
### 1.2 主要风险
|
||
|
||
- 预览仍以 `opentype.js` 直出为主,HarfBuzz 高级模式未接入主流程
|
||
- `frontend/src/App.test.vue` 非标准测试框架用例,自动化覆盖不足
|
||
- 前端未配置统一 lint 脚本,质量门禁不完整
|
||
|
||
## 2. 迭代目标
|
||
|
||
## M1:工程质量门禁补齐(优先级 P0)
|
||
|
||
- 增加 `lint`、`typecheck`、`test` 统一脚本
|
||
- 引入标准测试框架(Vitest + Vue Test Utils)
|
||
- 产出最小可用测试集(store / utils / 关键组件)
|
||
|
||
验收标准:
|
||
|
||
- `pnpm -C frontend run lint`
|
||
- `pnpm -C frontend run typecheck`
|
||
- `pnpm -C frontend run test`
|
||
- 三条命令均稳定通过
|
||
|
||
## M2:预览与导出一致性加强(优先级 P0)
|
||
|
||
- 统一预览与导出的文本 shaping 策略
|
||
- 对比 `font2svg.py` 输出,建立回归样例
|
||
- 处理复杂脚本、连字、组合字符边界情况
|
||
|
||
验收标准:
|
||
|
||
- 关键样例(中英文混排、多行、字距)偏差可控
|
||
- 导出结果与预览视觉一致
|
||
|
||
## M3:大字体库性能优化(优先级 P1)
|
||
|
||
- 增加字体对象 LRU 缓存与内存上限策略
|
||
- 优化 `fonts.json` 增量生成能力
|
||
- 导出阶段增加并发与失败重试上限
|
||
|
||
验收标准:
|
||
|
||
- 100+ 字体时首屏可交互时间维持稳定
|
||
- 批量导出失败率下降
|
||
|
||
## M4:文档与运维完善(优先级 P1)
|
||
|
||
- 保持 `README.md` / `USAGE.md` / `DETAIL-DESIGN.md` 同步
|
||
- 补充发布流程与版本变更记录模板
|
||
|
||
## 3. 执行原则
|
||
|
||
- 小步提交:每次改动聚焦单一目标
|
||
- 先验证再交付:测试、类型检查、lint 必跑
|
||
- 文档与代码同步更新
|
||
|
||
## 4. 里程碑建议
|
||
|
||
1. 第 1 周:完成 M1
|
||
2. 第 2 周:完成 M2
|
||
3. 第 3 周:完成 M3、M4
|