前言
这两天看到墨渊君大佬的一篇文章 👉 GitHub 主页美化 & 显示掘金最近发布文章 Top10 🔥,主要是在讲怎么美化 github 主页的,有兴趣可以看看。其中有一项是讲如何配置 github action,从而将掘金最新发布的篇文章同步到主页。所以我也有样学样,很快就配置好并且同步成功,类似这样:
但目前仅支持时间和标题,没有点赞数、收藏等等,且不支持其他平台,如知乎、思否,刚好我最近也在接触 github action,所以就想着看看大佬是怎么实现的,然后实现一个满足自己需求的。
牛已经吹上了天,看起来不做是不行了。不过还好,经过一天的折腾,终于实现了大部分功能,并且开源在 github:baozouai/multi-platform-posts-action。
目前该 action 支持的功能有:
- 多平台,目前支持掘金、知乎、思否(本来做好了语雀的,但发现语雀接口很奇怪,没法拿到正确的文章链接,所以暂时取消支持语雀的功能)
支持生成不同平台的 icon
- 支持点赞数 👍🏻
- 支持收藏数 ⭐(目前只有 juejin 有,知乎、思否接口比较麻烦,暂且不做)
本来还有个文章封面的,但是生成后github首页太长了,所以就放弃该功能了
那接下来就为大家介绍如何配置,快速美化你的 github 主页~
美化 github 主页
新建 github 主页仓库
如果已经有主页仓库,可以跳过这部分。如果还不知道 github 主页是啥,可以看下我的
主页实际上也是一个仓库,如果你没有的话,可以新建,要求是跟你的 github 同名:
大致意思是:baozuai/baozuai 是一个 ✨ 特殊的 ✨ 存储库,您可以使用它将 README.md 添加到您的 GitHub 配置文件中。请确保它是公共的,并使用自述文件对其进行初始化以开始操作。
在你的 readme 里面添加占位符
因为我们要将对应平台的文章自动生成到 github,所以需要一个占位符,生成之后直接替换即可,即在你的 readme.md 中添加以下占位符:
<!-- multi-platform-posts start -->
这里会插入生成的不同平台的文章列表
<!-- multi-platform-posts end -->
配置你的 github action,添加 update_readme.yml
如果还不知道怎么添加工作流,可以看我的主页仓库,添加的位置如下:
比如我们将其命名为 update_readme.yml(这个你任意取名),push 上去后,github 发现该目录下有 yml 的话,则会执行对应的工作流
配置 update_readme.yml
先贴下配置,不算太长,下面再讲一些细节:
# 工作流名称
name: Update Readme
# 工作流触发时机, see: https://docs.github.com/zh/actions/using-workflows/triggering-a-workflow
# 触发条件修改为: 当 main 分支有 push 操作 || 每天 0 点
on:
schedule:
- cron: '30 22 * * *'
push:
branches:
- main # 这里根据你的主分支是master还是main决定
# 作业, see: https://docs.github.com/zh/actions/using-jobs/using-jobs-in-a-workflow
jobs:
# 插入掘金列表, 使用 baozouai/multi-platform-posts-action 生成文章列表, see: https://github.com/baozouai/multi-platform-posts-action
juejin-posts:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Append Juejin Posts List 📚
uses: baozouai/multi-platform-posts-action@main
with:
user_id: '3526889034488174' # 上面拿到不同平台的id后,填入这里
platform: juejin # 这里填写不同的平台,有juejin, zhihu, segmentfault
- run: |
git pull
- name: Push to GitHub
uses: EndBug/add-and-commit@v9
with:
default_author: github_actions
message: juejin-posts
首先 name 也是可以随便写的,比如
name: Update My Github Readme
然后设置触发条件:
# 触发条件修改为: 当 main 分支有 push 操作 || 每天 0 点
on:
schedule:
- cron: '30 22 * * *'
push:
branches:
- main # 这里根据你的主分支是master还是main决定
这里有两个:
- 第一个是每天定时 0 天触发
- 第二个就是你在 main(有可能你主分支是 master)分支 push来触发工作流。
然后就是配置 jobs 了,下面主要是讲怎么配置不同平台的。
配置不同平台,拉取文章到 github 首页
目前支持配置user_id和platform参数,通过在action项目的action.yml里面定义:
拿到不同平台的 id,填写配置
- 掘金:
- name: Append Juejin Posts List 📚
uses: baozouai/multi-platform-posts-action@main
with:
user_id: '3526889034488174' # 这里是我的掘金id
platform: juejin # 这里填写不同的平台
- 知乎
- name: Append Zhihu Posts List 📚
uses: baozouai/multi-platform-posts-action@main
with:
user_id: 'bao-zou-11-13-41' # 这里是我的知乎id
platform: zhihu # 这里填写不同的平台
- 思否
- name: Append Segmentfault Posts List 📚
uses: baozouai/multi-platform-posts-action@main
with:
user_id: 'baozouai' # 这里是我的思否id
platform: segmentfault # 这里填写不同的平台
触发工作流,自动同步文章
上面配置完成后,push 后就会触发 action,然后对应平台就会生成相应的 icon、时间、点赞数、收藏数、文章链接,例子如下:
总结
github 首页就像以前的 qq 空间,对于爱花里花哨折腾的你,肯定是希望装扮美化下,而如果刚好你也有写文章的话,不妨试着将文章同步到首页。
那在此之前,我们介绍了什么是 github 首页,即是一个特殊的同名仓库;然后介绍了怎么配置工作流;之后,我们又考虑到不同的人有不同的偏好,你可能喜欢在掘金,也可能是知乎、思否或者其他平台写文章,所以本 action 支持多个热门平台,只需要填写 user_id 和 platform 即可。
当然,如果平台暂时不支持的,也可以提下 issue 或 pr,一起丰富功能,支持更多的平台。
还有,如果你没有写文章,那也没关系,因为相信看完之后,你也能学到 github 工作流的概念以及大概怎么配置。
最后
以上如果能帮助到你的话,还请来个一键三连,点赞、收藏、关注,如果能再来个转发,那就更好啦,谢谢大家~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。