☰
深读workout-guide的manifest:302个动作元数据、器械与肌群字段完全参考
2026/10/15 11:51:54 网站建设 项目流程

【免费下载链接】workout-guide

302 open exercise illustrations and a framework-neutral npm package by Bryl Lim

项目地址:https://gitcode.com/gh_mirrors/wo/workout-guide
点击查看免费下载

workout-guide 是一个框架无关的开源 npm 包(@bryllim/workout-guide),核心是一份包含302 个健身动作元数据的 manifest.json,覆盖 17 类器械、20 个主肌群,每个动作附带 3 帧 512×512 的动作插画(共 906 帧)。这篇文章带你逐字段读懂这份动作元数据清单,帮你在健身 App、训练计划工具或动作检索功能中直接复用这套 workout 动作数据。

一、manifest.json 是什么?整体结构一眼看懂

整个包的数据灵魂就是这一个文件:

[ { "id": "exercise-bench-press", "slug": "bench-press", "name": "Bench Press", "exerciseType": "weight_reps", "equipment": "Barbell", "primaryMuscle": "Chest", "secondaryMuscles": ["Triceps", "Shoulders"], "isStretch": false, "frames": [ ... 3 帧 ... ], "attribution": { ... } }, ... ]

顶层是一个长度为 302 的 JSON 数组,每个元素是一个动作对象,字段高度统一。项目里还有自动化校验脚本 validate-catalog.mjs,它会强制检查:数量必须恰好是 302 条、id 与 slug 全局唯一、每个动作必须有 3 帧、每帧必须是带透明通道的 512×512 SVG。数据质量有脚本兜底,你可以放心消费。

卧推(Bench Press)动作插画:equipment 为 Barbell、primaryMuscle 为 Chest

二、动作标识三字段:id / slug / name

字段示例用途建议
idexercise-bench-press包内唯一标识,带exercise-前缀,适合做数据库主键
slugbench-press短横线分隔的小写形式,适合做 URL、路由和 CDN 资源路径
nameBench Press展示给用户看的英文名称

npm 包提供的getExercise()同时支持按 id 或 slug 查询(见 index.ts),查不到时返回null,使用上很省心。

三、exerciseType:5 种训练类型字段完全对照

exerciseType决定了一个动作"怎么计数",只有 5 个枚举值:

枚举值数量计数方式典型例子
weight_reps136负重 + 次数卧推、硬拉
bodyweight_reps114自重 + 次数俯卧撑、深蹲
duration39按时间平板支撑、死挂
distance_duration10按距离/时间跑步、骑行
assisted_bodyweight3器械辅助自重辅助引体、辅助双杠臂屈伸

做训练计划时,前两类展示"组 × 次",duration展示"组 × 秒",distance_duration则展示时长或里程——一个字段就能驱动整套 UI 逻辑。

壶铃摆荡:weight_reps 类型的典型动作插画

四、equipment:17 类器械字段的分布参考

equipment是单一字符串字段(不是数组),共 17 个取值,分布非常集中:

器械动作数器械动作数
Bodyweight(自重)111Cable(绳索)26
Dumbbell(哑铃)45Cardio(有氧器械)13
Machine(综合器械)35Pull-up Bar(引体杆)7
Barbell(杠铃)29Wall / Towel / Bench 等各 1~3
Resistance Band(弹力带)19Kettlebell / Box / Doorway 等各 2

超过六成的动作只需自重和哑铃,这说明该数据集天然适合家用健身房与徒手训练场景。按"我只有一对哑铃"筛出 45 个动作,就是searchExercises('', { equipment: 'Dumbbell' })一条调用的事。

高脚杯深蹲:equipment 为 Dumbbell 的动作示例

五、primaryMuscle 与 secondaryMuscles:肌群标签怎么用

主肌群primaryMuscle有20 个取值,动作数 Top 6:

  • Core(核心)45 个、Glutes(臀)38 个、Quads(股四头肌)35 个
  • Chest(胸)26 个、Shoulders(肩)22 个、Back(背)19 个

其余还包括 Hamstrings、Lats、Legs、Biceps、Triceps、Calves、Forearms、Upper Back、Rear Delts、Lower Back、Hips、Posterior Chain、Adductors、Mobility 等。

secondaryMuscles是辅肌群字符串数组,共出现 22 种取值。统计下来被引用最多的是:Core(96 次)、Shoulders(80 次)、Glutes(63 次)、Hamstrings(50 次)——一眼就能看出这份元数据对动作复合性的刻画很细。

isStretch布尔字段单独标出了 14 个拉伸动作(如 cat-cow-stretch、hamstring-stretch),无需靠字符串猜。

引体向上:primaryMuscle 为 Lats、辅肌群含 Biceps 的背肌训练代表动作

六、frames 与 attribution:插画帧和资源授权字段

每个动作固定 3 帧(index: 1/2/3),每帧结构:

{ "index": 1, "path": "assets/bench-press/frame-1.svg", "width": 512, "height": 512, "format": "svg", "attribution": { "creator": "Bryl Lim", "license": "CC BY-SA 4.0", "source": { "name": "Everkinetic", "changes": "..." } } }

三个要点:

  1. 双格式资产:仓库中每个动作目录同时提供 SVG 与 PNG 两种帧文件(如 assets/bench-press/),manifest 指向 SVG,PNG 作为位图兜底;
  2. 溯源字段:来自 Everkinetic 的 76 个首帧姿态在attribution.source里保留了原始出处与修改说明,这是商用时规避授权风险的关键字段;
  3. 授权清晰:代码 MIT、图片 CC BY-SA 4.0,详见 LICENSES.md 与 ATTRIBUTION.md。

硬拉动作帧:每个动作均含 3 张这样的序列帧插画

七、把元数据用起来:搜索、过滤与 CDN 地址

包导出 4 个核心 API(src/index.ts),全部直接构建在 manifest 之上:

  • exercises:完整的 302 条元数据数组;
  • getExercise(idOrSlug):按 id 或 slug 精确查找;
  • searchExercises(query, filters):关键词 + 结构化过滤,filters支持equipment、primaryMuscle、exerciseType、isStretch四个维度,且匹配时会自动做小写化、去音调、&转and等归一化;
  • getAssetUrl(slug, frameIndex):生成指定帧的 CDN 地址,可自定义baseUrl与版本号,也可本地导入资源。
import { searchExercises, getAssetUrl } from '@bryllim/workout-guide'; // 哑铃肩部推举 searchExercises('press', { equipment: 'Dumbbell', primaryMuscle: 'Shoulders' }); // 第 2 帧插画地址 getAssetUrl('push-up', 2);

测试用例 catalog.test.ts 完整演示了以上用法,是最佳"字段用法参考"。

辅助引体:exerciseType 为 assisted_bodyweight 的少数动作之一

八、结语:一份可以直接入库的动作元数据

总结这份 manifest 的价值:302 个动作 × 6 个核心字段(类型/器械/主辅肌群/拉伸标记)× 906 帧透明插画,字段枚举封闭、命名统一、带授权溯源,并且有校验脚本和测试用例双重保证。无论是做动作检索、按肌群生成训练计划,还是按器械筛选家用动作,它都是一份开箱即用的元数据参考。安装@bryllim/workout-guide后,从searchExercises开始就能跑通第一个功能。

【免费下载链接】workout-guide

302 open exercise illustrations and a framework-neutral npm package by Bryl Lim

项目地址:https://gitcode.com/gh_mirrors/wo/workout-guide
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询