说起 Running_page,真是一言难尽。这玩意儿我折腾了好几年,前前后后怕是有十来次。从 Docker 到 GitHub,能找的教程基本都翻遍了,但每次都以失败告终——对我来说,这确实很有门槛。
不过这次和之前不同。因为已经熟练掌握了 AI 技巧,能轻松借助 AI 纠错、设计开发新功能。所以,这算是我第一次真正跑通了。目前已经成功用上,但问题依然存在。作为技术小白,完全不懂的情况下要把那些深奥的技术搞懂,还是挺难的。
如之前两篇文章所说,这次的 Docker 版 running_page 折腾过程充满挫折,到现在也没能完美解决。前后大概花了 12 个小时,分几天才完成。
目前存在的问题是:应用首页无法更新最新数据。让 AI 排查了很久,也没找到办法。刚好之前看过“空白”折腾的页面,后来“小十”也折腾了——空白的代码是开源的,小十在此基础上做了复刻和升级。
空白页面:https://koobai.com/exercise/
小十页面:https://www.xiaoten.com/pages/exercise/
我的页面:https://www.sangushui.com/page-exercise.html
既然原生的不行,那我就搞一个独立页面,完美整合到 Typecho 里,后续还能和插件互动。现在应用只是首页不显示数据,其他功能全都正常,比如自动同步 Keep 数据、自动生成 SVG、自动重建等等。

我从空白的仓库里提取了跑步页面的代码,文件不多,就 5 个。刚开始想调用满心主题的头部和底部,结果 CSS 和 JS 冲突一大堆,我解决不了,AI 也搞不定。最后干脆不要头部底部了,也不引入主题的资源,反而一切正常了。
原本引用主题的话,深浅色模式会自动跟随主题;不引用之后,我重新写了深浅色代码和切换按钮,调试了好几次,终于完美实现。

不得不说,空白的这个跑步页面真的很炫酷,尤其是记录详情里的地图居然会动,记录颜色各不相同,选中后的背景色和数字颜色保持一致……细节满满。我在完善之后,又加了不少个性化的细节。
这次折腾也新增了一些功能,比如筛选——支持按年份、按类型筛选。但最大的两个个性化功能是:发布到 Memos 和同步 Obsidian 的训练 MD 文件。

空白的原始代码支持生成运动轨迹图片,默认保存到本地,他的目的应该是方便分享到朋友圈等社交媒体。但我不需要这个。我深度使用 Memos,如果保存图片旁边能有一个按钮,一键发布到 Memos,图文并茂、全自动完成,那才叫绝。


想法很简单,实现也不难。之前我在 Obsidian 里就做过同步 Memos 的插件,我以为 AI 有记忆会变聪明,不会踩之前踩过的坑,结果该犯的错误还是犯了。
Memos 版本更新频繁,API 也跟着变。结果就是,我告诉 AI,它也没法精准找到适配的 API。一个个试太费劲了,索性把问题丢给它,反而搞定了。
先从发文字开始,文字正常了再带图片,图片正常了再改成 MD 格式。有了参考,AI 实现起来确实快,一键发布到 Memos,非常完美。
再说说 MD 文档的处理。其实我跑步不多(原因之前石头厝说过),但我散步遛娃很多,也经常徒步。这些数据我是想记录的,同时也希望通过折腾能激发一点跑步的兴趣——不能天天跑,但时不时来几次也行。
最近的主线任务是减肚子,所以每天都有相应的训练。数据目前记录在 OB 里。突发奇想,让页面读取七牛的 MD 文件,然后把数据融合到运动轨迹列表里。这个想法有点大胆,但仔细想想是可行的,有 AI很快就实现了。
OB 已经和七牛实现了双向实时全自动同步。这么一折腾,OB 数据一变动,七牛就跟着变,网页访问时自动加载,完美。
这次折腾也踩了不少坑,应该说是小经验,全是花时间测试得来的。比如七牛的 MD 文件,如果直接访问,七牛有缓存,是拿不到最新版本的。但解决办法也有——在访问地址后面加一个动态版本号,这样访问页面就能获取到最新的七牛文件了。