一个零依赖、单文件、离线可用的个人健康管理仪表盘。把训练、饮食、补剂、中医养生、松解恢复、抗老抗衰、护肤七个维度整合在一个 HTML 页面里,并且形成闭环:记录训练 → 引擎算下次目标 → 给出今日建议 → 睡眠不足自动减量 → 周容量仪表回看肌群分布。
所有条目均附证据等级(A/B/C/D)、失败模式编码(常见失败 → 一线修复 → 兜底)与个性化禁忌提醒。
单文件
index.html,双击即可运行。无框架、无构建工具、无后端、无 API 调用,数据存在浏览器本地存储里。
导航按四个分组组织,共 12 个页面:
| 分组 | 页面 | 说明 |
|---|---|---|
| 训练 | 概览 / 计划 / 动作 / 记录 / 饮食 / 进度 | 仪表盘 · 周计划编辑 · 43 个动作库 · 训练记录(含 RPE)· 饮食打卡 · 体测与柔韧趋势 |
| 养护 | 补剂 / 中医 / 松解 | 循证补剂库 · 药食同源与方剂科普 · 泡沫轴/筋膜球/拉伸方案 |
| 抗老 | 抗衰 / 护肤 | 行为与补剂分级 · 成分库与使用顺序 |
| 系统 | 备份 | 导入导出 / 滚动备份 / 一键回滚 |
几个值得一提的设计:
- 自适应引擎(Adapt):用 Epley 公式估算 e1RM 做同动作纵向比较,按固定系数给出下次目标重量;昨夜睡眠 < 6 小时自动减量 10%。所有系数写死在模块顶部,调参只改一处,不给模型留主观打分空间。
- 周容量仪表:按六肌群统计最近 7 天总组数,对照 10-20 组/周的参考带,避免"练了但某块没练到"。
- 中医线:体质锚点 + 24 节气提示 + 舌象周记(苔色/厚薄趋势)。
- 健壮性:所有外部数据进入前统一走
Schema.normalize()补齐字段;单页渲染异常有错误边界兜底(不留白屏);导入/迁移前自动滚动备份;本地存储写失败会立即提示而非静默丢数据。
git clone <你的仓库地址>
cd <仓库目录>
# 直接用浏览器打开 index.html,或起一个本地静态服务:
python3 -m http.server 8000 # 然后访问 http://localhost:8000不需要 npm install,不需要构建。 唯一的网络请求是动作演示媒体(开源数据集,经 jsDelivr 分发,按需懒加载);加载失败会自动隐藏并提示,离线不影响其余功能。
仓库内置的是一套中性示例画像(30 岁男性 / 175cm / 70kg / 体脂 20%),全站的训练目标、饮食门槛与相关文案都锚定在这份画像上。
要用你自己的真实数据:
cp profile.local.example.js profile.local.js
# 然后编辑 profile.local.js,填入你的真实画像profile.local.js 已被 .gitignore 排除,不会进仓库。文件不存在时系统自动回落到内置示例值,所以开源仓库里永远只有示例数据。
可配置字段:
| 字段 | 说明 |
|---|---|
age |
年龄,用于推算有氧心率区间与基础代谢 |
sex |
'男' / '女',影响 Mifflin-St Jeor 公式常数项 |
height / weight / bodyfat |
身高 cm / 体重 kg / 体脂率 % |
muscleRate |
可选,体成分秤上的肌肉率 %;留 null 不渲染相关文案 |
city |
可选,仅用于气候相关提示文案;留空显示"湿热地区" |
tdee |
可选,实测/估算 TDEE;留 null 则由公式推算 |
window.__TM_TARGETS__ |
覆盖热量与蛋白目标区间 |
体成分秤的绝对值误差较大,看趋势比看绝对值更有意义。
.
├── index.html # 主应用(单文件,全部 HTML/CSS/JS)
├── profile.local.example.js # 个人画像模板(入库)
├── profile.local.js # 你的真实画像(被 .gitignore 排除)
├── fat-loss-plan-women.html # 独立页面:女性减脂计划表
├── soft-discipline-design-philosophy.md
├── docs/
│ └── 系统介绍-v3.35.md # 系统完整介绍(架构 / 模块 / 数据规模)
└── tests/
├── run.sh # 回归测试入口
├── verify-logic.js # 逻辑层断言(Util / Schema / Store)
├── verify-dom.js # DOM 层断言(渲染 / 交互 / XSS 防线)
└── verify-privacy.js # 开源脱敏断言(画像注入 / 硬编码个人数据清零)
bash tests/run.sh
# 或分别执行(DOM 层需要 jsdom):
TZ=Asia/Shanghai node tests/verify-logic.js
TZ=Asia/Shanghai node tests/verify-dom.js本仓库已做脱敏处理:
- 代码与文档中不含真实姓名、邮箱、手机号、API 密钥、token、数据库连接串或内网 IP。
- 所有个人身体数据已抽离为可注入的画像层,仓库内只保留中性示例值。
- 开发过程记录(
.workbuddy/)、历史版本备份(*.bak-*/*.pre-*)、旧版文档等含真实数据的文件均已加入.gitignore。
如果你 fork 本仓库并填入自己的数据,请确认 profile.local.js 仍处于忽略状态,不要误提交。
本项目为运动科学、营养学与中医药科普整理,仅供个人健康管理参考,不构成医疗建议、诊断或处方。
- 方剂类内容仅作溯源科普,禁止自行抓药或长期自行服用中成药;是否适用、剂量加减、疗程长短须执业中医师四诊合参后决定。
- 处方药类抗衰干预(二甲双胍、雷帕霉素等)严禁自行使用。
- 有基础疾病、处于孕期/哺乳期、有进食障碍史,或出现急性损伤、持续疼痛、麻木放射痛、夜间痛醒者,请先就医。
- 服抗凝药、有血栓、皮肤破损、肿瘤、孕期者禁用相关手法。
在开始任何训练或饮食方案前,请咨询专业人士。
| 资源 | 用途 | 许可 |
|---|---|---|
| hasaneyldrm/exercises-dataset | 动作动画 GIF | 数据 MIT / 媒体 © Gym visual |
| yuhonas/free-exercise-db | 动作起止位图 | Unlicense(公共领域) |
| exrx.net | 动作权威演示外链 | 仅外链,不随本仓库分发 |
演示媒体通过 jsDelivr 在线按需加载,不随本仓库分发。