Docs · Architecture
四个仓库
三条数据流
看懂这张图,你就知道每个数字是从哪来的、断网时会发生什么。
四个仓库
一个生态,四块积木
| 仓库 | 职责 | 技术 | 构建 |
|---|---|---|---|
xkmyth/xkmyth | 安装包发行 + Downloads 页 | 静态 HTML/CSS/JS + Releases API | 无 |
xkmyth/xkmyth.github.io | 主站:文档、软件库、工具目录、状态 | 静态多页 + 少量 JS | 无 |
xkmyth/Timarsky | 工具站:27 个速查模块 + 在线工具箱 | 单页 + 独立工具页 | 无 |
xkmyth/about | 关于页、生态入口 | 静态单页 | 无 |
四个仓库都是 GitHub Pages 直接托管根目录,推 main 即上线。没有打包、没有 node_modules、没有构建缓存,改一行刷新就看到。
数据从哪来
三条只读数据流
Releases API
/repos/xkmyth/xkmyth/releases 提供版本号、资产名、体积、下载次数与时间。Downloads、版本日志、状态页都读它。
Commits / Actions
/commits?per_page=1 与 /actions/runs?per_page=1 只取最后一条,用来显示四仓最近活动与 CI 结果。
本地数据
软件库应用全部写 localStorage,一个应用一个前缀,互不干扰;清掉浏览器数据即归零。
匿名调用 GitHub API 的额度是每 IP 每小时 60 次。状态页因此把刷新间隔压到 15 分钟、四仓并发一次取完,并只在真正拿到数据时才写缓存。
缓存与降级
宁可显示旧数据,也不显示错误
| localStorage 键 | 内容 | 有效期 | 失败时 |
|---|---|---|---|
xkmyth-site-releases-cache | 首页下载卡与版本号 | 10 分钟 | 退回静态直链 + 「最新版见 Releases」 |
xkmyth-changelog-cache | 版本日志时间轴 | 10 分钟 | 显示一句说明 + Releases 链接 |
xkmyth-status-cache-v1 | 四仓最近提交与 CI | 15 分钟 | 保留上次成功数据,标灰不标红 |
xk-theme / xkmyth-theme2 | 深浅色选择 | 长期 | 跟随系统 |
xk-vault-v1 等 | 各应用数据 | 长期 | 不影响其他应用 |
为什么没有后端
静态不是妥协,是设计
成本与寿命
GitHub Pages 免费、全球 CDN、自带 HTTPS。没有服务器要续费,也就不会有「某天打不开」。
隐私边界清楚
没有后端就没有「数据在别人机器上」这回事。软件库的十个应用全部把数据留在你的浏览器里。
可审计
每个页面的 JS 都能直接读,没有打包混淆。怀疑哪个页面偷偷发请求,搜 fetch( 就行。
代价
不能做跨设备同步、不能做协作编辑、不能存大文件。需要这些时,请自己接 NAS 或云盘,而不是把数据交给本站。