跑步对于我来说,是最舒服的独处方式。跑起来很简单,左脚迈过右脚,右脚迈过左脚,一步一步往前。

跑步大概是最亲民的运动,几乎没有任何场地限制,也无需添购额外的装备。有一双合脚的鞋,在晴朗的天空下,你就可以跑起来。

跑步的时候,我不听音乐,也可以没有播客。什么也不想,做最简单的重复动作。

慢慢地,呼吸开始加重,心跳变得有力。身体的变化带来快乐的感觉,跑步让人快乐。我跑得不快,但是跑步的快乐足够长久。

除了一把钥匙,我不想带任何东西出门跑步。虽然也跑了好几年,但没怎么记录跑步数据。

后来,发现有位前辈开源了一款用来展示跑步轨迹的工具 Running Page。看着足迹一点点铺在地图上,感觉还蛮不错,我也希望保留下跑过的痕迹。

于是,我也部署了一个 Running Page。现在记录的数据还不多,待几年之后再看应该会更丰富一些。

希望以后每去到一个新的环境,我都能有机会溜出去小跑一圈。

如果你也喜欢跑步,并且愿意记录,这篇教程可以帮助你在GitHub上部署一个自己的Running Page。

以下将一步步教你如何利用GitHub Action + GitHub Pages来部署Running Page。

首先,在Running Page的作者 Yihong 的主页找到此项目的仓库,点击Fork选项来复制一份该仓库。

然后,在自己的GitHub主页下进入该仓库,做一些配置。Running Page支持多种跑步应用,例如 Nike Run Club, Strave, Garmin, Keep。我使用一块苹果手表+Nike Run Club来记录轨迹,所以以下设置均基于此搭配。

第一步,在Fork操作完成以后,先修改文件 gatsby-config.js,将此文件中变量 pathPrefix设置为/running_page。即

pathPrefix = /running_page

如果不做此修改,GitHub Pages渲染出来的网页将无法显示地图。

第二步,修改GitHub Action的配置。GitHub Action的工作流,由仓库.github/workflow目录下的文件定义。在仓库的该目录下存在三个.yml文件,此处只需要修改其中的run_data_sync.yml以下内容即可

img

其中RUN_TYPE字段用来指定跑步应用类型,如果你还没有使用过任何跑步APP,可以将变量内容设置为only_gpx。如此,在第一次部署网站的时候,展示的是Yihong大神十年的跑步数据

img

如果你和我一样,选择Nike Run Club来记录跑步,应设置【RUN_TYPE = nike】。第三步中的配置,根据APP的不同而有所区别。但目的均相同,为了获得对应APP的访问Token,使Running Page可以从APP拉取跑步数据。

第三步,配置访问NRC的Token。在电脑的浏览器(Firefox)上打开NRC官网,登录你的帐号(或先注册),然后点击自己的头像进入主页;

接着打开开发者工具(快捷键为 Ctrl + Shift + I),在 Storage-Local Storage下找到自己的 refresh_token,并复制双引号内的字符串

img

然后,回到自己的Running Page仓库下的选项Settings-Secrets-Actions,点击按钮 New repository secret,命名为NIKE_REFRESH_TOKEN,内容为NRC网站上复制来的字符串。

img

如此,便设置好了Running Page访问NRC的权限。获得其它APP访问TOKEN的操作类似,具体可参考Yihong的教程

第四步,启动GitHub Pages。在仓库的Setting-Pages选项下面,选择Branch: gh-pages,并点击Save按钮。

img

第五步,启动GitHub Action的工作流workflow。即,在仓库的Action选项下面,依次启用工作流 Run Data Sync 和 Publish GitHub Pages 。

img

然后,依次手动点击Run Data Sync 和 Publish GitHub Page的按钮 Run Workflow。

img

等待后台执行结束,访问该仓库的GitHub Pages网址https://username.github.io/running_page,即可看见自己的Running Pages!

img

这两个工作流分别用来同步数据和生成网页,它们会每天在GitHub的服务器上定时运行,因此你的Running Page可以自动同步来自NRC的跑步数据,并展示在网站上。

完成,开始跑步叭!

Enjoy your running 🏃🏃‍♀️