MCPcopy Index your code
hub / github.com/yihong0618/running_page

github.com/yihong0618/running_page @v2.99 sqlite

repository ↗ · DeepWiki ↗ · release v2.99 ↗
722 symbols 2,467 edges 108 files 115 documented · 16%
README

Note

  1. clone or Fork before vercel 404 need to pull the latest code
  2. python in README means python3 python
  3. use v2.0 need change vercel setting from gatsby to vite
  4. 2023.09.26 garmin need secret_string(and in Actions) get

bash python run_page/get_garmin_secret.py ${email} ${password} # if cn python run_page/get_garmin_secret.py ${email} ${password} --is-cn

  1. 2024.09.29: Added Elevation Gain field, If you forked the project before this update, please run the following command:
  2. To resolve errors: sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: activities.elevation_gain
  3. If you don't have a local environment, set RUN_TYPE to db_updater in the .github/workflows/run_data_sync.yml file once then change back.

bash python run_page/db_updater.py

  • For old data: To include Elevation Gain for past activities, perform a full reimport.
  • To show the 'Elevation Gain' column, modify SHOW_ELEVATION_GAIN in src/utils/const.ts
  • note: Elevation Gain may be inaccurate. You can use Strava's "Correct Elevation" or Garmin's "Elev Corrections" feature for more precise data.
  • 本项目现在默认使用 MapCN(免费)。如果你选择使用 Mapbox,请获取你自己的 token。请勿使用项目维护者的 token - 查看此 issueissue #1055

running_page

这里是白银越野赛全部 21 位逝者的故事

R.I.P. 希望大家都能健康顺利的跑过终点,逝者安息。

打造个人跑步主页

English | 简体中文 | Wiki

GIF 展示

running_page

大家的跑步主页展示

Running page runners

Runner page App
zhubao315 https://zhubao315.github.io/running Strava
shaonianche https://run.duanfei.org Strava
yihong0618 https://yihong.run Nike
superleeyom https://running.leeyom.top Strava
geekplux https://activities.geekplux.com Nike
guanlan https://grun.vercel.app Strava
tuzimoe https://run.tuzi.moe Nike
ben_29 https://running.ben29.xyz Strava
kcllf https://running-tau.vercel.app Garmin-cn
mq https://running-iota.vercel.app Keep
zhaohongxuan https://zhaohongxuan.github.io/workouts Strava
yvetterowe https://run.haoluo.io Strava
love-exercise https://run.kai666666.top Keep
zstone12 https://running-page.zstone12.vercel.app Keep
Lax https://lax.github.io/running Keep
lusuzi https://running.lusuzi.vercel.app Nike
wh1994 https://run4life.fun Garmin
liuyihui https://run.foolishfox.cn Keep
sunyunxian https://sunyunxian.github.io/running_page Strava
AhianZhang https://running.ahianzhang.com Nike
L1cardo https://run.licardo.cn Nike
luckylele666 https://0000928.xyz Strava
MFYDev https://mfydev.run Garmin-cn
Oysmart https://run.ouyang.wang Garmin-cn
Eished https://run.iknow.fun Keep
Liuxin https://liuxin.run Nike
loucx https://loucx.github.io/running Nike
winf42 https://winf42.github.io Garmin-cn
sun0225SUN https://run.sunguoqi.com Nike
Zhan https://run.zlog.in Nike
Dennis https://run.domon.cn Garmin-cn
hanpei https://running.nexts.top Garmin-cn
liugezhou https://run.liugezhou.online Strava
zhubao315 https://zhubao315.github.io/running Strava
Jason Tan https://jason-cqtan.github.io/running_page Nike
Conge https://conge.github.io/running_page Strava
cvvz https://cvvz.github.io/running Strava
zHElEARN https://workouts.zhelearn.com Strava
Rhfeng https://sport.frh.life Garmin-cn
Ym9i https://bobrun.vercel.app/ Strava
jianchengwang https://jianchengwang.github.io/running_page Suunto
fxbin https://fxbin.github.io/sport-records/ Keep
shensl4499 https://waner.run codoon
haowei93 https://running-fun.eu.org gpx
stevenash0822 https://run.imangry.xyz/ Strava
Vint https://vinton.store/Running/ Keep
Muyids https://muyids.github.io/running Garmin-cn
Gao Hao https://efish2002.github.io/running_page/ Garmin-cn
Jinlei https://jinlei.run/ 咕咚
Ray Wang https://run.raywang.pro/ Garmin
RealTiny656 https://tiny656.github.io/running_page/ JoyRun
EINDEX https://workouts.eindex.me/ Strava/Nike
Melt https://running.autove.dev/ Strava
deepinwine https://deepin.autove.dev/ Garmin-cn
Jeffggmm https://jeffggmm.github.io/workouts_page/ Garmin
s1smart https://s1smart.github.io/running_page/ Strava
Ryan https://85ryan.github.io/gooorun/ Strava
PPZ https://run.dudubbbbbbbbb.top/ Strava
Yer1k https://running.yer1k.com/ Strava
AlienVision https://run.drink.cafe/ Strava
Vensent https://vensent.github.io/workouts_page/ Garmin
Zeonsing https://run.jogzeal.com/ Coros
yaoper https://running.yaoper.cn codoon
NoZTurn https://run.jiangkai.org Strava
laqieer https://laqieer.github.io/running_page/ Strava
Guoxin https://running.guoxin.space/ Strava
Darren https://run.wdoc.top/ tcx
Evan https://github.com/LinghaoChan/running Keep
Shuqi https://runner-shuqi.devlink.cn/ Garmin
shugoal https://shugoal.github.io/wk-shu/ Garmin
Bolyn https://run.wbolyn.com Coros
LeiChen https://xthirty77.github.io/running_page/ Coros
itrunner https://itrunner.cn Garmin
maslke https://maslke.space/running_page/ Garmin-cn
Niewei Yang https://neewii-worksout.vercel.app/ Strava
RUN.LOG https://run.731558.xyz:6881/ Strava
StoneRicky https://stonericky.github.io/running_page/ COROS
coutureone https://run.xcouture.cc/ Garmin

它是怎么工作的

image

特性

  1. GitHub Actions 自动同步跑步数据,生成展示页面
  2. 支持 Vercel(推荐)和 GitHub Pages 自动部署
  3. React Hooks
  4. Mapbox 进行地图展示
  5. Nike、Strava、佳明(佳明中国)及 Keep 等,自动备份 GPX 数据,方便备份及上传到其它软件
  6. 支持终端界面(TUI)本地浏览运动数据

因为数据存在 gpx 和 data.db 中,理论上支持几个软件一起,你可以把之前各类 App 的数据都同步到这里(建议本地同步,之后 Actions 选择正在用的 App)

如果你不想公开数据,可以选择 Strava 的模糊处理,或 private 仓库。

缩放地图彩蛋

image

支持

视频教程

下载

git clone https://github.com/yihong0618/running_page.git --depth=1

安装及测试 (node >= 20 python >= 3.11)

pip3 install -r requirements.txt
npm install -g corepack && corepack enable && pnpm install
pnpm develop

访问 http://localhost:5173/ 查看

TUI(终端界面)

你可以在终端中使用内置的 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 – 退出

Docker

```bash

NRC

docker build -t running_page:latest . --build-arg app=NRC --build-arg nike_refresh_token=""

Garmin

docker build -t running_page:

Extension points exported contracts — how you extend this code

YearStatAccumulator (Interface)
(no doc)
src/components/YearStat/index.tsx
IViewState (Interface)
(no doc)
src/utils/geoUtils.ts
ISiteMetadataResult (Interface)
(no doc)
src/static/site-metadata.ts
ProcessedActivities (Interface)
(no doc)
src/hooks/useActivities.ts
YearStatSummary (Interface)
(no doc)
src/components/YearStat/index.tsx
Activity (Interface)
(no doc)
src/utils/utils.ts
ICity (Interface)
(no doc)
src/static/city.ts
ILightsProps (Interface)
(no doc)
src/components/RunMap/LightsControl.tsx

Core symbols most depended-on inside this repo

append
called by 245
run_page/gpxtrackposter/track.py
add
called by 65
run_page/gpxtrackposter/year_range.py
extend
called by 21
run_page/gpxtrackposter/value_range.py
lower
called by 19
run_page/gpxtrackposter/value_range.py
adjust_time
called by 13
run_page/utils.py
upper
called by 13
run_page/gpxtrackposter/value_range.py
m2u
called by 13
run_page/gpxtrackposter/poster.py
load
called by 12
run_page/generator/__init__.py

Shape

Function 330
Method 302
Class 62
Interface 28

Languages

Python75%
TypeScript25%

Modules by API surface

run_page/tui/app.py78 symbols
run_page/tui/data.py43 symbols
run_page/joyrun_sync.py37 symbols
src/components/ActivityList/index.tsx34 symbols
run_page/komoot_sync.py27 symbols
run_page/garmin_sync.py27 symbols
run_page/codoon_sync.py22 symbols
src/utils/utils.ts19 symbols
run_page/gpxtrackposter/track.py17 symbols
run_page/generator/__init__.py17 symbols
run_page/oppo_sync.py16 symbols
run_page/nike_sync.py15 symbols

Dependencies from manifests, versioned

@eslint-react/eslint-plugin5.7.0 · 1×
@eslint/js10.0.1 · 1×
@mapbox/mapbox-gl-language1.0.1 · 1×
@mapbox/polyline1.2.1 · 1×
@math.gl/web-mercator4.1.0 · 1×
@svgr/plugin-svgo8.1.0 · 1×
@tailwindcss/vite4.2.4 · 1×
@types/geojson7946.0.16 · 1×
@types/mapbox__polyline1.0.5 · 1×
@types/node25.6.0 · 1×
@types/react19.2.14 · 1×
@types/react-dom19.2.3 · 1×

For agents

$ claude mcp add running_page \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact