bash
python run_page/get_garmin_secret.py ${email} ${password}
# if cn
python run_page/get_garmin_secret.py ${email} ${password} --is-cn
Elevation Gain field, If you forked the project before this update, please run the following command:sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: activities.elevation_gainRUN_TYPE to db_updater in the .github/workflows/run_data_sync.yml file once then change back.bash
python run_page/db_updater.py
Elevation Gain for past activities, perform a full reimport.SHOW_ELEVATION_GAIN in src/utils/const.tsElevation Gain may be inaccurate. You can use Strava's "Correct Elevation" or Garmin's "Elev Corrections" feature for more precise data.
R.I.P. 希望大家都能健康顺利的跑过终点,逝者安息。
GIF 展示

Running page runners
因为数据存在 gpx 和 data.db 中,理论上支持几个软件一起,你可以把之前各类 App 的数据都同步到这里(建议本地同步,之后 Actions 选择正在用的 App)
如果你不想公开数据,可以选择
Strava的模糊处理,或private仓库。
缩放地图彩蛋

git clone https://github.com/yihong0618/running_page.git --depth=1
pip3 install -r requirements.txt
npm install -g corepack && corepack enable && pnpm install
pnpm develop
访问 http://localhost:5173/ 查看
你可以在终端中使用内置的 Textual TUI 浏览运动数据。
# 使用 make
make tui
# 或直接用 uv 运行
uv run run_page
# 或指定自定义的 activities.json 路径
uv run run_page /path/to/your/activities.json
TUI 中的键盘快捷键:
1 / 2 – 切换列表和统计视图← / → – 切换年份↑ / ↓ – 选择活动y – 循环切换年份t – 循环切换运动类型q – 退出```bash
docker build -t running_page:latest . --build-arg app=NRC --build-arg nike_refresh_token=""
docker build -t running_page:
$ claude mcp add running_page \
-- python -m otcore.mcp_server <graph>