博客 / 詳情

返回

利用 github action 生成 docsify 的文件目錄

前言

docsify 可以快速幫你生成文檔網站。不同於 GitBook、Hexo 的地方是它不會生成靜態的 .html 文件,所有轉換工作都是在運行時。

image.png

根據 docsify 官網的快速開始可以很快地就搭建一個個人博客。
搭配 github pages 就可以擁有一個公網可訪問的靜態博客。

網上關於如何使用docsifygithub pages的文章網上已經有挺多的了,這裏就不做詳細介紹。這裏主要是介紹如何使用github action來生成文件目錄。因為docsify本身是一個靜態網頁,只需要生成一次index.html就可以運行,所以本身是不支持動態去顯示文件目錄。但是docsify支持自定義側邊欄,只需要在根目錄增加一個_sidebar.md和打開loadSidebar選項,側邊欄就會自動顯示_sidebar.md的內容。

我們只需要在_sidebar.md加上目錄信息,
再搭配docsify-sidebar-collapse插件就可以顯示以下的效果了:

image.png

原理

GitHub Actions 是 GitHub 提供的一種自動化工具,它可以幫助你在 GitHub 倉庫中自動執行軟件開發的工作流程。你可以使用 GitHub Actions 來構建、測試和部署你的代碼。你也可以使用它來自動化其他的任務,例如發送電子郵件通知、創建問題和拉取請求,甚至發佈到 GitHub Pages 或其他的雲平台。

GitHub Actions 的工作流程是由一系列的任務(稱為"actions")組成的,這些任務可以在同一個虛擬環境中按照你定義的順序執行。每個任務都可以運行一個命令或者一個腳本,也可以運行一個你從 GitHub Marketplace 或者其他地方獲取的預定義的action。

你可以在你的倉庫中創建一個 .github/workflows 目錄來存放你的工作流程文件。每個工作流程文件都是一個 YAML 文件,它定義了一個或者多個工作流程。當你的倉庫中發生一個特定的事件(例如 push、pull request 或者 issue)時,GitHub Actions 就會自動執行相應的工作流程。

如果使用github pages來部署我們的博客,就需要一個github倉庫,那這樣我們只需要利用github action在代碼推送時,都生成一次_sidebar.md,這樣就可以保證我們倉庫上面的目錄一直都是最新的。

_sidebar.md:

- [README.md](./README.md)
- directory1
  - [file1.1.md](./directory1/file1.1.md)
  - [file1.md](./directory1/file1.md)
- directory2
  - [file2.md](./directory2/file2.md)
- directory3
  - [file3.md](./directory3/file3.md)
- [_sidebar.md](./_sidebar.md)

教程

在倉庫目錄建立一個新文件.github/workflows/main.yml

on: [push] # 在push的時候執行

jobs:
  add_sidebar_job:
    runs-on: ubuntu-latest
    name: job to add _sidebar.md
    steps:
      - uses: actions/checkout@v4                     # 拉取代碼
      - uses: if-nil/docsify-file-catalog-action@main # 使用action生成_sidebar.md文件並推送到倉庫內
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}   # GITHUB_TOKEN 需要有寫權限
          # include: '.*'

docsify-file-catalog-action是一個用來生成_sidebar.md並推送到倉庫的action,有兩個參數

inputs 描述 必須 默認值
github_token 用來推送_sidebar.md到倉庫內,需要寫權限 true null
include 希望顯示的文件列表(正則表達式) false .*\.md

需要檢查一下github_token是否有寫權限,位置在倉庫的 Setting -> Actions -> General:

image.png
image.png

然後提交代碼即可

git add .github/workflows/main.yml
git commit -m "add workflow"
git push

點擊倉庫的Action按鈕查看執行情況

image.png

一切正常的話就可以看到我們的根目錄有一個_sidebar.md文件了

image.png

參考

  • docsify-file-catalog-action
  • actions-demo
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.