GitHub Page 功能是 GitHub 提供的一項支援靜態網頁的服務,只要在你的 repository 中加入一個名為 gh-pages 的分支,則 GitHub 便會預設將此分支內的檔案以靜態網頁的方式呈現,因此利用此特性就可很容易的製作一個簡單的網站。GitHub Pages 提供了二種不同形態的頁面 “User or organization site” & “Project Site”。其中個人/組織 網站一個 GitHub 帳號只能有一個、而專案網站則可以很多個。
https://calvinegs.github.io #只有一個
https://calvinegs.github.io/project1
https://calvinegs.github.io/project2
https://calvinegs.github.io/project3
…
安裝步驟
Step 1: 在 GitHub 上建立一個 new repository
Repository name 若為 Owner_name.github.io 即所謂的 User site,Repository name 即為靜態網站的網址。以下圖為例,有效網址為 https://calvinegs.github.io
Step 2: 使用 GitHub Action 構建 Hugo
透過 GitHub Action 功能,在你每次將新版本的 Hugo 網站內容推送到 GitHub repository 時,GitHub 將自動建置網站。
新增一個 .github/workflows/gh-pages.yml,內容如下:
name: github pages
on:
push:
branches:
- main # Set a branch to deploy
pull_request:
jobs:
deploy:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
# extended: true
- name: Build
run: hugo --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
Step 3: GitHub Page 的設置
在第一次推送 Hugo 網站內容推送到 GitHub repository 時,透過 GitHub Action 的建置,將在你的 repository 中新新一個分支名稱叫 gh-pages。請在 GitHub Page 的設置功能中將它由 “Main” 指向 “gh-pages” 分支。
Step 4: 設置 Hugo 設定檔
將 Hugo 設定檔 config.toml 中的 baseURL 設定成 https://Owner_name.github.io。
baseurl = "https://calvinabba.github.io"
DefaultContentLanguage = "en"
title = "Beautiful Blog"
theme = "beautifulhugo"