1. 在 ubuntu 上安裝 Hugo
在 ubuntu 上能夠使用 apt 的方式安裝,套件庫的關係版本會比較舊。建議使用 snap 的方式安裝,snap 目前也通用於各種版本的 Linux。
Snap Package
1 2 3snap install hugo --channel=extended or snap install hugoapt install
1sudo apt install hugo檢查 Hugo 安裝的版本
1hugo version
2. 初始化建立網站
2.1 新增網站
利用 hugo cli 的指令建立檔案結構及必要的檔案。
| |
初始化網站之後,在 bolg 資料夾下就會產生下面的文件結構
| |
2.2 設定佈景主題
Hugo 佈景主題網站有提供相當多的選擇,在這裡我以 m10c 這個主題為例。將佈景主題複製到 theme 資料夾下。
| |
在 config.toml 內加上設定內容,theme 如果有說明其他設定可以一併加入。
| |
如果選擇的佈景主題的資料中,有
exampleSite資料夾,可以參考其中的config.toml設定。
2.3 本地端啓動網站預覽
使用下面的語法啓動 Hugo 的伺服服務,然後就可以打開瀏覽器,連結到 http://localhost:1313
| |
-t之後接的是套用的佈景主題名稱-D可以瀏覽草稿內容
3. 部署至 GitHub
GitHub Pages 有兩種形態,一種是使用者(組織)、一種為專案性質。
- User/Organization Pages
(https://<USERNAME|ORGANIZATION>.github.io/)
- Project Pages
(https://<USERNAME|ORGANIZATION>.github.io/<PROJECT>/)
在這裏我們使用個人的 GitHub Page 也就是 https://<USERNAME>.github.io/的形態。
3.1 在 GitHub 上建立 Repository
在 GitHub 上建立兩個 repositories,一個為放置 Hugo 內容的程式庫 ninthday-blog,一個是 GitHub Page 使用的程式庫 ninthday.github.io。
3.2 Clone GitHub Repository
| |
複製貼上目前的 Hugo 專案內容到 clone 下來的資料夾中,並確認能夠正確的啓動 Hugo 伺服器瀏覽本地端網頁內容。
| |
3.3 上傳 Hugo 內容至 GitHub
將 Hugo 專案的內容 push 到 GitHub 上作為備份。
| |
3.4 部署生成內容至 GitHub Page
前面步驟中,執行 hugo server 沒有真的建立一個靜態網站的內容,要生成靜態網站的內容,需要執行 hugo 指令,執行後會在資料夾下生成 public資料夾,這個資料夾下的內容才是靜態的網頁內容,也就是要部署至 GitHub Page 的內容。
GitHub Page 的內容要連結部署至先前步驟建立的 <USERNAME>.github.io repository,在官網的建議中可以使用 git submodule 方式。
| |
生成靜態網站內容
| |
切換至 public 資料夾,Push submodule 至 GitHub 中
| |
3.5 瀏覽網站
上傳過一陣子之後,可以開啓瀏覽器連結到自己的 GitHub Page,輸入 https://<USERNAME>.github.io
4. 自動部署 Script
完成上述內容,已經能夠使用 Hugo 產生靜態網站並部署至 GitHub Page。接著參考官網上的說明內容,建立一個自動部署的 shell script,讓部署的流程更為簡單。
建立 deploy.sh 檔案,加入以下的內容
| |
修改 deploy.sh 檔案權限為可執行狀態 chmod +x deploy.sh,然後執行部署 script 寫下 commit 的內容。執行後就能生成靜態網站內容並部署至 <USERNAME>.github.io 上。
