之前用Hugo架設個人網站,但架設完成後還是需要部署到一個平台,才有辦法瀏覽, 這篇就來分享如何將網頁部署到GitHub以及途中遇到的一些問題
如果還不知道怎麼架設個人頁面的可以參考 使用HUGO建立個人網頁
讓我們繼續看下去!
**Hugo GitHub**上有兩個方法,這邊兩種都會介紹!
User/Organization Pages
(https://<USERNAME|ORGANIZATION>.github.io/)
Project Pages
(https://<USERNAME|ORGANIZATION>.github.io/<PROJECT>/)
-
User/Organization Pages
1. GitHub建立兩個repository
首先要先建立兩個repository
my_blog(可自行命名) 放你原始Hugo程式
my_account.github.io(用自己的帳號) 放要部署的網頁程式
這邊要記得,my_account.github.io這個建立時要選public,若不小心選到private的話可以依照這路徑去更改
Setting > Danger Zone > Make this repository public
2. 建立部署網頁的資料(/public)
回到根目錄,輸入
hugo
根目錄下面就會產生一個public的資料夾,裡面有自動產出的html,這是等等要部署到GitHub的頁面
如果你在執行這步驟時,有開啟server,記得要先關閉在執行
2-1. 設定pages source
當你部署完成後,需要將Setting內GitHub Pages的Source指定到master,這樣待會測試時才會有網頁出現
3. 連接public及my_account.github.io
cd public
git init
git remote add blog <my_account.github.io_repository> #註1
git add .
git commit -m "first commit"
git push blog master
git的部分就不在多做贅述,若有不清楚的可以點here看看
註1:這邊remote name不用origin是因為另一個repo的remote name也會用origin,當初兩個都用一樣,在更新文章(下面會提到)時遇到不少問題,所以索性就用不一樣的名稱,這樣也比較好辨識,這可以照自己的習慣命名。
4. 將Hugo資料夾連接到my_project
cd ..
git init
git remote add origin <my_project_repository>
git add .
git commit -m "first commit"
git push origin master
等待一下,然後輸入https://my_account.github.io/顯示出你的網頁就代表成功囉!
-
Project Pages
0. 設定config.toml
這邊要先更新config內的baseurl
baseurl = "https://my_account.github.io/my_page/" #my_page為等等要建立的repo name,可自行命名
DefaultContentLanguage = "zh"
title = "Ian Blog"
1. GitHub建立兩個repository
首先要先建立兩個repository
my_blog(可自行命名) 放你原始Hugo程式
my_page(要對應config內的baseurl) 放要部署的網頁程式
這邊ㄧ樣要記得,my_page這個建立時要選public,若不小心選到private的話可以依照這路徑去更改
Setting > Danger Zone > Make this repository public
2. 建立部署網頁的資料(/public)
回到根目錄,輸入
hugo
根目錄下面就會產生一個public的資料夾,裡面有自動產出的html,這是等等要部署到GitHub的頁面
如果你在執行這步驟時,有開啟server,記得要先關閉在執行
2-1. 設定pages source
當你部署完成後,需要將Setting內GitHub Pages的Source指定到master,這樣待會測試時才會有網頁出現
3. 連接public及my_account.github.io
cd public
git init
git remote add blog <my_account.github.io_repository> #註1
git add .
git commit -m "first commit"
git push blog master
git的部分就不在多做贅述,若有不清楚的可以點here看看
註1:這邊remote name不用origin是因為另一個repo的remote name也會用origin,當初兩個都用一樣,在更新文章(下面會提到)時遇到不少問題,所以索性就用不一樣的名稱,這樣也比較好辨識,這可以照自己的習慣命名。
4. 將Hugo資料夾連接到my_project
cd ..
git init
git remote add origin <my_project_repository>
git add .
git commit -m "first commit"
git push origin master
等待一下,然後輸入https://my_account.github.io/顯示出你的網頁就代表成功囉!!
-
寫自動化腳本
部署成功後的,當然就是開始寫自己的blog拉!
但如果每次發佈都要打一堆指令,個人會覺得很累,所以就來寫個腳本吧XD
1. 建立deploy.sh
在你的根目錄下建立deploy.sh的檔案,然後打開terminal,輸入chmod +x deploy.sh
讓他變成可執行的檔案
2. 撰寫deploy.sh
#!/bin/sh
set -e
hugo
cd public
git add .
msg="rebuilding site $(date)"
if [ -n "$*" ]; then
msg="$*"
fi
git commit -m "$msg"
git push blog master #註2
註2:這邊就會遇到剛提到的remote的問題,如果兩個remote name都叫origin,那在這邊執行時就會有問題,因為原本的repo已經被第二個蓋掉了,所以這邊才用不同的remote去做分類
3. 更新文章
假設現在已經寫好文章要更新了 在根目錄下
git add .
git commit -m "update new post" # 在更新前一定要將你的文章commit才可以往下執行
./depoly.sh
這樣就完成拉!! 也不用像一開始打一長串的指令,快速方便又好用!!
-
References
- Host on GitHub 再次感謝官方文件大力贊助播出