头图

前言

这两天看到墨渊君大佬的一篇文章 👉 GitHub 主页美化 & 显示掘金最近发布文章 Top10 🔥,主要是在讲怎么美化 github 主页的,有兴趣可以看看。其中有一项是讲如何配置 github action,从而将掘金最新发布的篇文章同步到主页。所以我也有样学样,很快就配置好并且同步成功,类似这样:

image.png

但目前仅支持时间和标题,没有点赞数、收藏等等,且不支持其他平台,如知乎、思否,刚好我最近也在接触 github action,所以就想着看看大佬是怎么实现的,然后实现一个满足自己需求的。

image.png

牛已经吹上了天,看起来不做是不行了。不过还好,经过一天的折腾,终于实现了大部分功能,并且开源在 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 工作流的概念以及大概怎么配置。

最后

以上如果能帮助到你的话,还请来个一键三连,点赞、收藏、关注,如果能再来个转发,那就更好啦,谢谢大家~


暴走
10 声望0 粉丝