Github 居然可以这么玩
Categories: Creation
知乎答题上面的《你在 GitHub 上看到过的最有意思的项目是什么?》个人回复,有一些文章的感觉,直接放到专栏
那到底是可以怎么玩呢?
答案是 让你的 Github 个人页,变成一个博客首页,同时每天自动更新信息展示
前几天 github 出了一个新彩蛋,会自动将你仓库下的同名用户名仓库的 README 展示到你的个人页面的上方,就是如下的这个样子:
github.com/tw93 欢迎 Follow,欢迎 Follow,欢迎 Follow 🏓🏓🏂🏂⛷⛷🤺🤼♀️🤾♀️🤽♀️⛸🏹🚣🏄🛀⛹🚴🏇
周末两天空闲时间折腾了下,通过 Github Actions 自动每天去跑我的开源仓库、博客、WakaTime 和豆瓣动态,然后写入到 README 里面去,可编程性被大大提高了,很是潮流!
怎么实现的,知识点一个一个给大伙同步
预备知识
- 如何让你的 Github 个人页展示 Markdown 的内容,可见 how-to-create-a-github-profile-readme
- 如何使用 Github Actions 自动化处理内容,可见 https://github.com/features/actions
自动化获取信息巧妙方式
以上实现详细可见github.com/tw93/tw93仓库,有这么几种不错的实现:
1、利用 Github 提供的 Api
比如图片中 Product Releases 是借助 Python 中的GraphqlClient 去获取 Github Graphql Api 方式实现,先取到当前用户下所有的仓库字段信息,然后通过字符串拼接的方式凑成你需要的格式即可
2、利用网站的 RSS 地址很方便
比如说 Recent Blog 以及 Funny Soul 这两块,博客信息利用 feed.xml 可以快速获取
豆瓣的动态信息当时有想过去用 python 爬对应的信息,但是实现下来会比较蹩脚,登录态需要隔一段时间去维护一下,恰好在处理个人页信息时候看到了如下 feed rss,半小时就把本来一天的事情给做了;
Rss 信息处理整体可以通过 feedparser 将对应的 Rss 获取到内容数组,然后再进行拼接即可
3、利用自动化的工具提供的 API
比如上文中的 Weekly Development Breakdown 这一块,超级推荐大家使用 wakatime 这个工具来统计你的代码时间,具体使用可以 Google,此处不详细;
如何画如下这个图,可以参考 tw93/waka-box 里面的代码,利用 wakatime-client 取到信息,然后也是进行字符串拼接处理即可,由于是之前 fork 更改,最终会生成一个 gist
最后利用 httpx 获取到对应 raw 的文本内容,然后通过到 Markdown 代码语法插入即可
更多思路
结合 Github Profile Readme 和 Actions 能力 还可以做更多有趣的事情,比如可以将每天需要看到文章自动生成到首页去,这样就不需要去找了,可参考github.com/simonw,周末弄时有些处理借鉴了 simonw 的思路
还有一种“忽悠的有趣玩法”,可以录制一个 mp4,然后转成 gif 放到首页上去,会比较有趣,比如说praveenscience这个老外
还有一种“更 6666 的”,直接将玩游戏搬到了首页,通过发送 issue 的方式来移动棋子,然后动态更新,有很多人在玩,还有排名,很是潮流,比如说timburgan
发现了一个 awesome 专门放 github profile readme 的仓库,提交了一个 PR,里面收集了大量的案例和使用,可见abhisheknaiidu/awesome-github-profile-readme
结尾
顿时觉得国外的程序员都挺会玩的,很是潮流,值得我们学习和去交流,少加无意义的班,多写有趣的代码。