部署 Hexo 部落格至 Github Pages
建置 Hexo 部落格已經兩年多,如今更換 Mac 之後建制的新環境 Node 版本已經不相容,peer packages 貼心的設計也種下了難以收拾的坑 (難解的 sass loader),舊的部落格所選用的 Minos 框架在少數的使用量與停止維護下造就了相容性衝突也是在所難免,如今只能硬著頭皮重新學習建置一包 Hexo 了。
踩過的坑我們懂得避免,這次選用最多人使用與維護的 NexT 模板作為新部落格的皮膚。
建立 NexT 主題專案包
NexT 建置了貼心的官網提供完整的說明,點我。
再建置好 Hexo 專案包後,執行以下命令取得 NexT theme。
1 | $ cd hexo-site |
更換 __config.yml 主題
將 Hexo 專案根目錄下的 __config.yml 配置更改為:
1 | $ theme: next |
新增部落格文章
cd 至專案目錄後,透過以下指令建立文章:
1 | $ hexo new post your-post-name |
如何搭配 Github pages 部署網站
先說我個人的案例,去年第一個部落格我的做法是去建立新的 Github 帳號,將專案直接部署在
原先在 google 搜尋引擎上查不太到好的解法,所以就求救了 ChatGpt 老師~,沒想到各種問題都能一一擊破,真的是太厲害了!
建立新的 Git repository
去想要使用的 Account 建立一個新的倉庫,並且隨意命名,我使用 blog 這個名稱當作主網站的 router。
專案包中安裝自動部署工具
cd 至專案包路徑後,執行以下的命令安裝 Hexo 自動部署工具。
1 | $ npm install hexo-deployer-git --save |
連結 Github repository 至部落格
cd 開啟專案中的 __config.yml 檔案改寫以下內容:
1 | deploy: |
直得注意的是分支 gh-pages
會為 github 部屬時自動辨別為子專案使用,待下一個步驟設定完成並建立後將子專案推至此分支。
事前作業
為了讓 url 可以指向正確的路徑,需要調整 __config.yml
中的幾個設定:
url
1 | # URL |
public dir
調整發布的資料夾名稱為 docs,在部署後會自動建立一個資料夾名稱為 docs。
1 | # Directory |
執行命令建立該資料夾:
1 | $ hexo generate |
錯誤處理
在部署後有發生錯誤訊息:
1 | $ github-pages 228 | Error: No such file or directory @ dir_chdir - /github/workspace/docs |
ChatGpt 的回覆:
1 | You can also update the url setting in your Hexo project's _config.yml file to match your new deployment environment. For example, if your site is deployed to https://your-username.github.io/blog, you can update your url setting like this: |
原因是我忘了將上一個步驟中的 url 指向調整到 /blog
,導致網站開啟後 css 與 javascript 直接掛掉找不到路徑。
將這一段調整後重新操作部署指令:
1 | $ hexo clean && hexo generate && hexo deploy |
就可以在子路由中看到 Hexo 部落格搭建好囉!完美的與舊專案並存在 github.io domain 下啦!