如何自動同步部落格到 Github 主頁?

lucifer210發表於2021-02-27

前言

Github 支援通過建立同名倉庫的形式自定義主頁。比如我的 Github 使用者名稱是 azl397985856,那麼新建一個名為 azl397985856 的倉庫即可。接下來你可以通過修改此倉庫的 README 檔案來自定義 Github 主頁。也就是說,你想要自定義主頁就新建一個同名倉庫並修改 README 就行了。

修改 README 能玩出什麼花樣呢?請接著往下看。

裝修效果

先上一下我的裝修效果:

開始動手

新增資料統計

上圖的那幾個 Github 資料統計以及獎盃使用的是一個外部服務。想要顯示哪個就新增相應程式碼即可:

資料統計:

<img src="https://github-readme-stats.vercel.app/api?username=azl397985856&show_icons=true" alt="logo" height="160" align="right" style="margin: 5px; margin-bottom: 20px;" />
複製程式碼

注意將 username 改成自己的使用者名稱哦(下面也是一樣,不再贅述),不然就顯示的 lucifer 我的資訊啦。

獎盃:

<img src="https://github-profile-trophy.vercel.app/?username=azl397985856&theme=flat&column=7" alt="logo" height="160" align="center" style="margin: auto; margin-bottom: 20px;" />
複製程式碼

自動更新部落格

如上圖我的裝修主頁,其中部落格的文章列表不是寫死的,而是每隔一個小時定時讀取我的部落格 內容,並提取前 5 篇文章。

如果你也想要這個功能,就在 README 中新增如下程式碼即可:

## ? Latest Blog Posts

<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->
複製程式碼

之後讀取的部落格列表會填充在兩個註釋之間,也就是說你可以通過改變註釋的位置,將其放到頁面任意位置

為了實現每個小時定時更新的功能,我們可以使用 Github Action 的定時任務來實現。

具體操作步驟如下:

接下來將如下內容複製貼上進去:

name: Blog Posts

on:
  # Run workflow automatically
  schedule:
    # Runs every hour, on the hour
    - cron: "0 * * * *"

jobs:
  update-readme-with-blog:
    name: Update this repo's README with latest blog posts
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: gautamkrishnar/blog-post-workflow@master
        with:
          # comma-separated list of RSS feed urls
          feed_list: "https://lucifer.ren/blog/atom.xml"
複製程式碼

注意:這裡的 cron: "0 * * * *" 的意思是每個小時進行一次,並且是每個小時的 0 分。 因為你需要等到下一個整點才能看到效果,有時候 Github 會有延時,晚幾分鐘也正常,大家不要著急,耐心等待即可。

請將 feed_list 替換為你自己的 RSS 訂閱地址。如果有多個訂閱地址,則用英文半形逗號分割。

如果你的部落格沒有 RSS 或者你不知道自己的 RSS 地址就無法使用了哦。我的部落格是用 hexo 生成的,因此新增 RSS 就很容易了,如果你的部落格是掛到第三方的,也會提供 RSS 地址。比如 CSDN 就提供了 RSS 地址:

由於大家的部落格可能都不相同,因此具體大家可以自行搜尋。

完整原始碼

本文所有的程式碼都可以在如下的程式碼倉庫中找到。

倉庫地址:https://github.com/azl397985856/azl397985856

如果在使用過程中碰到其他問題,也歡迎私信我哦~ 最後祝大家都有一個高大上的 Github 主頁。

相關文章