React + TypeScript 实现的太鼓达人曲目资料库。
- 默认且当前唯一歌曲源:
https://cdn.ourtaiko.org/api/cnsongs - 全歌曲检索、分类、排序和分页
- 每首歌曲独立路由:
/songs/:id - v1(FumenDB)与 v2(Gugu)定数 tabs
- v1 谱面结构与 v2 能力维度雷达图
- 菌菌、Sakura、手动 JSON 成绩导入(仅保存在浏览器本地)
- “和纸档案”亮色主题与 FF14-inspired 深色主题
pnpm install
pnpm dev生产构建:
pnpm build歌曲源注册位于 src/data/sources.ts。当前只启用 CN 源;新增来源时扩展 SourceId、注册项与规范化函数即可。v1/v2 定数接口不属于歌曲列表来源。
旧域名(rating.ourtaiko.org 来自 main 分支、v2.rating.ourtaiko.org 来自 v2 分支)会在加载时读取需要迁移的 localStorage 数据(Sakura token、菌菌 token/player id、成绩),用 btoa(encodeURIComponent(JSON.stringify(data))) 编码进 URL hash,跳转到:
https://wiki.ourtaiko.org/migrate#data=<encoded>
新域名 /migrate 页面解码后写入:
sakuraToken→our-taiko-wiki:sakura-tokenkinokoApiKey→our-taiko-wiki:kinoko-keykinokoPlayerId→our-taiko-wiki:kinoko-playertaikoScoreData→our-taiko-wiki:scores(转换为新版ImportedScore格式,按 id+difficulty 合并,不覆盖已有成绩)
旧端跳转脚本位于旧仓库 main / v2 分支的 index.html;新端解码逻辑位于 src/utils/legacyMigration.ts,接收页面位于 src/pages/MigratePage.tsx。
原始 logo 保存在 assets/branding/icon.png,需要提交到 Git。pnpm dev 和
pnpm build 会先用锁定版本的 Sharp 生成 favicon、多尺寸 PNG 和 Apple touch
icon;也可单独运行 pnpm icons。生成文件已加入 .gitignore,
public/site.webmanifest 仍作为配置提交。CI 和部署服务器只需正常执行
pnpm install --frozen-lockfile、pnpm build,无需手动准备图标。