使用 GitHub Pages + Hexo 架設個人BLOG

使用 GitHub Pages + Hexo 架設個人BLOG
伊藤蒼太在這個資訊爆炸的時代,「部落格」這一個看似已經過時的名詞,其實依然是屬於個人開發者、研究者與創作者的一塊淨土。與社群平台的碎片化資訊不同,部落格更適合進行系統性的知識整理與技術分享,讓內容能夠被搜尋、被保存、被持續閱讀。尤其對程式設計或網路安全領域的學習者來說,一個屬於自己的技術部落格,不僅能夠紀錄成長歷程,也有助於在未來建立個人品牌。
本篇將帶你從零開始(在windows系統上),使用 Hexo(一個快速、簡潔的靜態部落格框架)搭配 GitHub Pages(GitHub 提供的免費靜態網頁託管服務),一步步完成屬於自己的部落格架設。
準備環境
在正式開始之前,請先確保電腦具備以下環境:
- Node.js(建議安裝 LTS 版本,Hexo 需 Node.js 14+ 支援)
- npm(Node.js 會一併安裝 npm 套件管理工具)
- Git(操作 GitHub 版本控管及部署需要)
- GitHub 帳號(用來存放專案與提供 Pages 網站)
安裝 Node.js
前往官網下載介面
https://nodejs.org/zh-tw/download
如果有 Docker 就複製上面程式碼到終端機裡,沒有就按底下的下載 MSI 檔再執行即可。
建議不管 Hexo 或 NodeJS 都能下載最新(至少 LTS)的版本,才能得到官方修補漏洞或優化後的最佳體驗。
Hexo 實作
- 打開終端機,輸入:
1 | hexo init my-blog |
這會在目前路徑下建立一個名為 my-blog 的資料夾,裡面包含 Hexo 專案的所有基本架構資料夾和檔案。
- 進入這個資料夾:
1 | cd my-blog |
- 安裝 Hexo 需要的依賴套件:
1 | npm install |
這樣子你的 Hexo 專案資料夾就初始化完成了。
檔案介紹
檔案介紹
這邊有幾個比較重要的檔案/資料夾,稍微介紹一下:
package.json
Hexo 的文章內容是使用 ejs 等模板語言來撰寫,經解析後渲染成靜態的 HTML,所以可以在 package.json 的 dependencies 裡面看到 ejs, stylus, markdown 的 renderer-package
1 | "dependencies": { |
scaffolds/
scaffolds 資料夾中有三個檔案: draft.md, page.md, post.md
這些是檔案模板,每使用 $ hexo new
source/
source 資料夾放著這個網站所有的資源。前綴詞帶有底線的資料夾會被 Hexo 忽略,_post 除外,因為這裡面放的是我們要上架的文章。這些靜態檔案(Markdown, HTML 等)在 build 完後會被放進 public 資料夾,而其他的檔案則是用複製的方式。
theme/
theme 資料夾用來放佈景主題相關的各種資料,官方預設的佈景主題是 landscape,如果想要換佈景,也可以到官方的 theme shop 去找你喜歡的主題,下載後整包放到 themes/ 下面來使用
(主題盡量挑選近期很多人穩定在維護的專案)
_config.yml
_config.yml 是我們最重要的設定檔,這個檔案中可以針對我們的全站呈現方式做設定
直接套模板
接下來找一個你想使用的 Hexo 主題(例如常見的 NexT、Butterfly、Reimu 等),通常主題會放在 GitHub 上,下載或使用 Git clone 複製主題進入你的 Hexo 專案的 themes 目錄內。
如果你不想那麼麻煩可以直接
1
2
3
4 git clone https://github.com/D-Sketon/reimu-template
cd reimu-template
npm install
hexo server已預先安裝 hexo、hexo-theme-reimu 及其他相關功能套件,只需要按照以下步驟操作:複製倉庫、安裝依賴、修改配置,即可取得一個基本的部落格!
完成這步可以直接跳到 部署到 GitHub Pages
例如以我這blog用的 reimu 為例,執行:
1 | cd themes |
並且重命名為”reimu”:
1 | Rename-Item -Path .\hexo-theme-reimu -NewName test |
⚠️ 注意!如果執行主題資料夾重命名指令時,遇到類似以下錯誤:
1 無法移除 C:\Users\...\.git 項目: 您沒有足夠的存取權限來執行此操作。請使用下方指令嘗試解決此問題:
1
2 robocopy .\hexo-theme-reimu .\reimu /E
Remove-Item .\hexo-theme-reimu -Recurse -Force這組指令會複製主題資料夾並強制刪除原資料夾的
.git等被鎖定檔案,常見於 Windows 權限或鎖定導致的無法移除問題。

然後在 _config.yml 裡面設定:
1 | theme: reimu |
完整流程範例如下:
1 | hexo init my-blog |
完成後就可以在本地瀏覽器打開 http://localhost:4000 預覽新主題部落格樣貌。
部署到 GitHub Pages
在開始部署之前,請先完成 SSH 金鑰設定,以避免常見的權限問題:
SSH 金鑰設定步驟
建立 .ssh 目錄
在 PowerShell 執行:
1 | mkdir $env:USERPROFILE\.ssh |
(如已有此目錄可略過)
產生 SSH 金鑰
1 | ssh-keygen -t ed25519 -C "your_email@example.com" |
按 Enter 使用預設路徑及參數。
將公鑰加入 GitHub
執行:
1 | cat $env:USERPROFILE\.ssh\id_ed25519.pub |
複製顯示內容,前往 GitHub → Settings → SSH and GPG keys → New SSH key,貼上內容並儲存。
註:連結 → https://github.com/settings/keys
測試 SSH 連線
1 | ssh -T git@github.com |
若出現
1 | Hi <username>! You've successfully authenticated |
表示設定成功。
回主題目,開始部署
完成 SSH 設定後,開始進行 Hexo 部署:
建立 GitHub 倉庫,通常命名為
你的帳號.github.io,如itousouta15.github.io。
在 Hexo 專案根目錄安裝部署外掛:
1
npm install hexo-deployer-git --save
先初始化 git
1
git init
修改
_config.yml,增加部署設定:1
2
3
4deploy:
type: git
repository: git@github.com:itousouta15/<你的-repo>.git
branch: main
生成靜態檔並部署:
1
2
3hexo clean
hexo generate
hexo deploy確認 GitHub Pages 功能已開啟,等候片刻後瀏覽
https://你的帳號.github.io即完成線上部署。
常見疑難排解
SSH 金鑰權限錯誤及
.ssh目錄無法建立
- 錯誤訊息:
git@github.com: Permission denied (publickey)Could not create directory '/c/Users/\xxx/.ssh'(亂碼路徑)- 原因:
Windows 使用者名稱含有中文或特殊符號,系統或 Git 解析路徑時產生亂碼,導致無法建立.ssh目錄。- 解決方法:
- 手動建立正確的
.ssh目錄:
1 mkdir $env:USERPROFILE\.ssh- 產生 SSH 金鑰並加入 GitHub:
將公鑰內容複製貼至 GitHub SSH Keys 頁面。
1
2 ssh-keygen -t ed25519 -C "your_email@example.com"
cat $env:USERPROFILE\.ssh\id_ed25519.pub- 將 Git 指令設定使用絕對路徑載入金鑰,注意路徑要有反斜線:
1 git config --global core.sshCommand "ssh -i C:/Users/伊藤蒼太/.ssh/id_ed25519"- 測試 SSH 連線:
正常應顯示「Hi
1 ssh -T git@github.com! You’ve successfully authenticated」。 - 再試
git push與hexo deploy。Git 倉庫初始化錯誤
- 錯誤訊息:
fatal: Not a git repository (or any of the parent directories): .git- 原因:
執行 Git 指令的資料夾非 Hexo 專案根目錄,或該資料夾尚未初始化 Git。- 解決方法:
- 切換至 Hexo 專案根目錄(含
.git)。- 若尚未初始化,執行:
1
2 git init
git remote add origin git@github.com:itousouta15/<你的-repo>.git- 再執行
hexo deploy。Submodule 警告
- 內容:
themes/reimu資料夾為獨立 git 倉庫,Git 會警告此為 submodule。- 建議:
使用 Git submodule 管理或刪除themes/reimu的.git資料夾,避免 clone 不完整。LF 與 CRLF 行尾格式警告
- 說明:
Git 在 Windows 環境會提示行尾碼轉換,為正常情況。成功部署訊息
- 你會看到類似以下內容:
1
2
3
4 Enumerating objects...
Writing objects...
To github.com:itousouta15/test.github.io.git
INFO Deploy done: git- 如果出現部分
known_hosts警告,不影響 Git 操作與 Hexo 部署。
日常使用與維護
- 使用 Hexo CLI 管理文章:
新增文章編輯完成後產生並部署:1
hexo new post "文章標題"
1
2hexo generate
hexo deploy - 定期更新 Hexo、主題與外掛,保持安全與功能正常。
- 依需要自訂主題配置,如風格、選單、評論系統等。
進階優化
- 加入自訂網域,替代預設 GitHub Pages 的網址。
- 使用 CDN 或 Cloudflare 提升全球訪問速度與安全。
- 配置 SSL 證書支援 HTTPS。
- 整合 SEO、網站分析工具。
- 使用 CI/CD 工具自動化部署流程。

這篇文章就到此為止!我們下次見!





