v0.4.0: Cloudflare Pages deploy tooling, items search in URL, spirit bear patch lookup

This commit is contained in:
voson
2026-07-27 16:28:31 +08:00
parent 1d0428b4a3
commit adb8f303c2
13 changed files with 674 additions and 27 deletions
+36
View File
@@ -2,6 +2,42 @@
本文件记录 **上分帝(Climperor** 的用户可见变更。格式参考 [Keep a Changelog](https://keepachangelog.com/)。
## [Unreleased]
## [0.4.0] - 2026-07-27
### Added
- 新增 `deploy_relations.py`:一键把关系预览静态站点部署到 Cloudflare Pages
—— 串联导出(`export_relations_site.py`)→ 资产完整性预检(缺图则中止)
`wrangler pages deploy` 直传 `dist/relations/` → 绑定自定义域名。凭据
经 keyzoo 注入(`refining/cloudflare` 的 Global API Key)或手动
`CLOUDFLARE_EMAIL` / `CLOUDFLARE_API_KEY` 环境变量;默认项目
`climperor-relations`、域名 `dota2.refining.dev`,均可参数覆盖。
- 新增 `_cf_status.py`:只读查询 Cloudflare Pages 项目 / 部署 / 自定义域名
状态(凭据经 keyzoo 注入),部署后核对用;另有一次性辅助脚本
`_cf_domain.py`(探测域名/ DNS 记录)与 `_cf_add_cname.py`(补建缺失的
CNAME,幂等)。
- 物品页搜索框进 URL`#/items?q=...`,刷新保状态、可分享;英雄页与物品页
搜索各用独立 debounce 计时器,互不干扰。
- 版本页支持非英雄单位:Valve patchnotes `heroes[]` 中的熊灵(id 1961)等
伪英雄 id 现解析为中文名 + 本地头像(`fetch_patches.py``UNIT_NAMES`
静态导出一并拷贝头像)。
### Fixed
- 修复 `serializeHash` 生成 `#heroes`(缺 `/`)导致刷新后路由解析异常的
问题,现统一为 `#/heroes` 形态。
- 版本日志中未知单位 id 不再显示 `# 1961` 原始数字,回退为「其它单位」。
- 本地预览 `serve_relations.py` 增加 CSP 响应头(`default-src 'self'` 等),
限制资源只从本站加载。
- `data.json` 加载失败时显式抛出 HTTP 状态错误,不再静默进入异常渲染。
### Performance
- 关系预览缓存英雄技能条目(`skillEntriesFor`)与血蓝条量程
`resourceBarScale`)计算结果,数据重载时失效,减少重复遍历。
## [0.3.0] - 2026-07-27
### Added