2019 年,我從 GitHub Pages、Hexo 與 NexT 開始建立自己的部落格。這篇保存當時的環境、主題設定、文章編輯與部署流程,也留下調整版面的實作筆記。
- 建立 GitHub 專案與 Hexo 本機環境
- 調整 NexT 導覽、版面與閱讀功能
- 先在本機確認,再產生與部署網站
原始實作記錄於 2019 年;以下操作畫面與程式範例保留當時版本。
這篇保存我從 GitHub Pages、Hexo 到 NexT 主題的建站流程。先把網站在本機跑起來,再逐步調整內容與版面,最後才處理部署。文章的程式碼與截圖主要來自 2019 年,主題檔案位置與設定可能因版本不同而改變。重做時先記錄 Hexo、Node.js 與 NexT 的版本,再對照需要的段落。
使用Visual Studio Code編輯時,這套件可以快速貼上當前時間:
Insert Date String,使用方法的快捷鍵:Shift+CTRL+I
選擇編輯器
選擇一款適合自己的編輯器,進行安裝。
下面列出我當時搭配使用的編輯器。先選一款能方便編輯 Markdown、YAML 與程式碼的工具即可,不必為了建立部落格全部安裝。
操作說明
Github repo 設定 & Hexo 搭建
個人網站與專案網站的差別在儲存庫名稱及網址路徑;下方 master、gh-pages 是原紀錄的發布分支選擇,不是只能使用這兩個分支。實際發布來源依 GitHub Pages 設定確認。
至 https://github.com/ 申請一個帳號。
登入之後,尋找一下建立儲存庫的按鈕(頁面右上角的加號),選擇 New repository (建立儲存庫)
先決定使用個人網站或專案網站,兩者的網址與路徑設定不同:
以
<個人帳號>.github.io為專案名稱,使用masterbranch 建構,
這樣生成的網址會是https://<個人帳號>.github.io。以自訂專案名稱
<倉庫名稱>,使用gh-pagesbranch 建構,
這樣生成的網址會是https://<個人帳號>.github.io/<倉庫名稱>。
我個人做的是想把網址簡單化,因此想保留 https://<個人帳號>.github.io 作為首頁網址,
步驟 1:新增一個 Github New repository
在個人的 Github 頁面上新增一個 New repository 。
步驟 2 : 安裝 Node.js 套件管理工具
安裝Git,至Git官網下載,安裝即可。
我們可以從Node.js 官網下載安裝,安裝完後至終端機輸入
1
npm -v
輸出版本後,便表示安裝已完成。若終端機找不到新安裝的指令,先重新開啟終端機,確認 PATH 與版本。當時我曾透過重新開機排除問題,但不是每次安裝都必須重開機。
步驟 3 : 安裝 Hexo
先打開cmd終端機,cd 到你想要安裝目錄,我個人是選擇在隨身硬碟的F:槽裡安裝,方便之後換電腦維護編輯部落格。若要換電腦維護編輯部落格,也是要將Hexo和Git、Node.js安裝完成,也就是步驟 2和步驟 3的步驟要做完。開始安裝Hexo
1 | npm install hexo-cli -g |
hexo server 和 hexo s 是相同意思的,
輸入hexo s後,在網址列輸入http://localhost:4000,若網頁正常顯示,表示安裝成功。
接下來有幾個常用到的指令,這些指令將來進行網站修改會常常用到。先認識下方指令的用途即可,後面會在調整與部署時使用。
1 | hexo clean //清除舊發布設定 |
步驟 4 : 安裝 Next 主題
本文保留當時從 Git 取得主題的方式。主題版本改變時,設定鍵與模板語法也可能不同;先確認本機可預覽,再逐項套用後面的自訂內容。
Next 連結
執行下方程式
1 | cd <name> |
【注意】在開始調整下方設定和配置之前,必須先了解這個步驟
接下來會修改設定與主題檔案。每次先改一個項目,檢查結果後再繼續,較容易找到設定錯誤。
修改前先保存目前可用的版本;出現錯誤時,對照終端機訊息與剛修改的檔案。
在這裡我建議大家可以開一個新的cmd終端機,cd進入到之前安裝hexo的目錄裡,
輸入 hexo s 或 hexo server 執行,在瀏覽器輸入網址http://localhost:4000,
若無法連線,先確認伺服器是否仍在執行、終端機是否有錯誤,以及網址與連接埠是否一致。
預覽期間可保持終端機開啟,需要停止服務時再按 Ctrl+C 停止服務;不是每次修改後都需要重新啟動。
這樣才能在本機隨時查看網頁更新內容,當然這個網頁也是要記得在瀏覽器按 F5 做重新載入網頁才行。
除非有特殊狀況再重新輸入 hexo s 或 hexo server 執行,這樣會比較好。
如出現錯誤訊息,解決方式
ERROR Deployer not found: git- 解決方法
1
npm install hexo-deployer-git --save
Error: Cannot find module 'cheerio'- 解決方法
1
npm install cheerio --save
Hexo 的 hexo d 部署登入問題與解決方式
下方保留 classic token 的操作路徑。新設定可依 GitHub 文件評估 fine-grained token、期限與指定儲存庫;Token 不應寫進文章、設定檔或公開儲存庫。
以 HTTPS 部署且尚未設定認證工具時,Git 可能提示輸入帳號與憑證。認證方式取決於 Git 遠端網址與本機設定,不是每次 hexo d 都會詢問。
GitHub 的 HTTPS Git 操作不支援以帳號密碼認證,可使用 Personal Access Token(PAT)或支援的認證工具;SSH 遠端則使用另一種設定。
登入流程
終端機會要求輸入:
1
Username for 'https://github.com':
→ 這裡請輸入 GitHub 註冊的信箱(或 GitHub 帳號名稱)。
接著會要求:
1
Password for 'https://<你的帳號>@github.com':
→ 這裡請輸入 Personal Access Token (PAT),而不是 GitHub 的密碼。
Personal Access Token 產生方式
1. 登入 GitHub。
2. 點選右上角大頭照 → Settings (設定)。
3. 左側選單找到 Developer settings (開發者人員設定)。
4. 點選 Personal access tokens → Tokens (classic)。
5. 按下 Generate new token (產生新令牌),依需求勾選權限(依目標儲存庫與操作給予必要權限,勿把廣泛的 repo 權限視為所有情境都需要)。
6. 產生後會得到一串字元,請將它複製保存(之後在 hexo d 輸入密碼時,就是貼上這個 Token)。
基本設定
先區分網站設定與主題設定。本文當時主要修改下方兩個檔案;不同 NexT 版本可能支援其他設定位置,請依版本文件確認。\_config.yml\themes\next\_config.yml
\ _config.yml
1 | # Site |
設定網址
1 | # URL |
將主題改為 next,這裡若沒進行更改,就無法套用next主題。
變更程式碼:
1 | # Extensions |
部署設定中的 branch 應與實際發布來源一致。本文當時使用 master 或 gh-pages 示範,這不是個人網站與專案網站的固定規定;現在也可能使用其他分支或 GitHub Actions。
這個部分可能較為重要,若沒設定正確,將無法使用hexo d進行配置上傳。
變更程式碼:
1 | # Deployment |
註:回到此網頁文章起始閱讀地方,了解自己是使用哪種方式來建立專案名稱。
\themes\next\ _config.yml
版權頁設定
設定文末 (或 sidebar) 版權宣告的型態,
這裡我選用預設的 by-nc-nd ( 姓名標示-非商業性-禁止改作 )。
變更程式碼:
1 | # 著作權 |
選擇版型
本文版本提供四種版型;只啟用要使用的版型,其餘以 # 註解。不同版本的設定方式請對照主題文件。(我個人使用的是 Gemini 版型)變更程式碼:
1 | # 方案 |
導覽選單區塊設定
變更程式碼:
1 | menu: |
大頭照設定
url 部分可以放圖片網址,也可以放資料路徑。例如:\source\images\頭像.jpg
變更程式碼:
1 | # 側邊欄頭像 |
社交連結
側邊欄的社交連結部分,顯示自己想提供給讀者的社交平台,可以利用這個部分來設定私人的社交平台連結。
|| 後面是圖示的設定,從 Font Awesome 進行選擇圖示,將網站上的圖示名稱加進去即可。
變更程式碼:
1 | social: |
開啟瀏覽人次設定
本文使用的 NexT 版本包含 busuanzi_count 設定,
依該版本設定檔調整 enable 的設定改為 true 即可。
1 | busuanzi_count: |
關閉文章下方版本顯示訊息
【由 Hexo & NexT.Gemini 強力驅動】
變更程式碼:
1 | # Powered by Hexo & NexT |
導覽選單圖標 & 項目標誌
1 | # 啟用/禁用菜單圖標/項目標誌。 |
顯示大約閱讀時間
安裝套件:
1 npm install hexo-symbols-count-time
變更程式碼:
1 | # Post wordcount display settings |
載入進度條
安裝依賴項:
1 | git clone https://github.com/theme-next/theme-next-pace source/lib/pace |
打開\themes\next\_config.yml變更程式碼為true:theme可設定喜歡的載入樣式
1 | # 頁面加載過程中頂部的進度條。 |
在按鈕中顯示閱讀百分比
變更程式碼:
1 | back2top: |
閱讀進度條
變更程式碼:
1 | # 閱讀進度條 |
開啟網頁右上書籤功能
變更程式碼:
1 | # 書籤支持 |
文章右上方顯示關注我的GitHub
變更程式碼:
1 | # “在右上角的GitHub橫幅上關注我”。 |
程式碼樣式變更、程式碼複製開啟
變更程式碼:
1 | codeblock: |
放大圖片
輸入指令
1 | cd 到 next 安裝路徑下 |
原圖:

變更程式碼:
1 | # FancyBox是一種工具,它提供了一種很好的方法來添加圖像的縮放功能。 |
效果:

其餘設定可依需要逐項調整,先保持預覽正常,再擴充功能。
語言設定
檢查\themes\next\languages目錄下有無zh-TW.yml,
這是當時版本的語系檔處理方式;重做時先確認主題是否已包含繁體中文。
若這個目錄下沒有這個檔案,請建立zh-TW.yml檔案,
內容請複製新增:**(以後若要改一些翻譯後的文字,可以在這裡更改)**
完整程式範例(95 行)
1 | --- |
Gemini 版型-色彩配置
我曾嘗試修改 Gemini 的配色,但當時部分區塊效果不如預期,最後使用預設配色搭配動態背景。下面保留嘗試過的設定;不需要自訂配色時,可跳過這一段。
我這裡文章是使用Gemini版型做維護,故以Gemini作為介紹,
若對於其他版型有興趣,可以自行研究。
背景 顏色變更
在\themes\next\source\css\_variables\<你選擇的版型>.styl變更
1 | // 某些最俱全局風格的設置。 |
接下來,
我下面統一設定成 rgba(255, 255, 255, 0.15),這裡的 0.15 是 alpha 值,代表約 15% 不透明度。
文章方塊 顏色變更
在\themes\next\source\css\_schemes\Gemini\index.styl變更
1 | // 帖子和評論塊。 |
導覽選單區塊 顏色變更
在\themes\next\source\css\_schemes\Pisces\_layout.styl變更
1 | .header-inner { |
目錄區塊 顏色變更
在\themes\next\source\css\_schemes\Pisces\_sidebar.styl變更
1 | .sidebar-inner { |
顏色設定分散在不同檔案。我在下方加上當時確認的中文註解;沒有標示的項目仍需對照版本與實際畫面,一次調整一個區塊。
文字顏色的設定
\themes\next\source\css\_variables\base.styl變更
1 | // 顏色 |
標題欄位顏色變更
從\themes\next\source\css\_schemes\<你選擇的版型>\index.styl來做新增,
更改的方式只要在最後加上這段即可。
1 | .site-meta { |
設置閱讀全文按鈕顏色
修改themes\next\source\css\_custom\custom.styl文件,添加:
1 | // 修改按键(button)樣式 |
再來,編輯16進制顏色變更即可。
版面比例
這裡可以調整一下版面區域的比例配置。
在預設的狀況,左右背景多一點,如果想調整比例可以從這裡去調整。
如果想要改變這樣的比例,可以在 \themes\next\source\css\_variables\<所選擇的版型>.styl 最後新增加入
1 | $content-desktop = 100% |
比例可依閱讀寬度與留白調整。我當時沒有套用這一段;修改後需一併查看桌面與手機,避免文字過寬或區塊擠壓。
動態背景
以下是當时主題支援的幾種背景方案。一次先啟用一種,確認畫面、閱讀對比與手機效能,再決定是否加入更多效果。
JavaScript 3D library
使用方法如下:
1 | cd 到 next 安裝路徑下 |
之後到 next 設定檔 \themes\next\_config.yml 中設置
1 | # JavaScript 3D library. |
canvas-ribbon
使用方法如下:
1 | cd 到 next 安裝路徑下 |
之後到 next 設定檔 \themes\next\_config.yml 中設置
1 | # Canvas-ribbon |
canvas-nest
使用方法如下:
1 | cd 到 next 安裝路徑下 |
之後到 next 設定檔 \themes\next\_config.yml 中設置
1 | # Canvas-nest |
修改主題頁面版面為圓角
方法一
在/themes/next/source/css/_variables/custom.styl文件中,
添加以下程式碼(Gemini樣式):
1 | // 修改主題頁面布局為圓角 |
方法二
在\themes\next\source\css\_variables\Gemini.styl文件中直接添加:
1 | // 修改主題頁面布局為圓角 |
我個人是使用方法二修改。
添加 PDF 擴充套件
安裝套件
1 | git clone https://github.com/theme-next/theme-next-pdf source/lib/pdf |
在 next/_config.yml 中調整對應設定:true
1 | pdf: |
在要加入pdf的文章,添入程式碼
1 | 外部連結: |
建立專頁
1 | hexo new page book |
編寫
在生成的md檔文件中
在\themes\next\_config.yml編輯,新增書本(book)。
1 | menu: |
建立文章
使用外部連結:
1 | {% pdf http://Your URL.pdf %} |
在source\_posts\文件創建一個文章。
如test.md,同時需要再創建一個同名的test文件夾,放要上傳的PDF文章。
1 | --- |
設置點擊頭像返回首頁
打開themes\next\layout\_macro\sidebar.swig文件,
新增
1 | //添加代码: |
開啟文章搜尋功能
終端機輸入:
1 | cd 到安裝目錄 |
打開\themes\next\_config.yml變更程式碼為true:
1 | # 本地搜尋 |
變更搜尋欄顏色
搜尋頁面文字背景底色
打開\themes\next\source\css\_common\components\third-party\search.styl
1 | .search-popup { |
搜尋頁面其餘背景顏色
1 | .search-pop-overlay { |
插入Youtube影片自動播放
打開themes/next/layout/_partials/sidebar/site-overview.swig, 找到if theme.social。
1 | {%- if theme.social %} |
點選頭像返回首頁
打開themes/next/layout/_partials/sidebar/site-overview.swig, 找到site-author-image,上下分別添加<a href="/">``</a>即可。
1 | <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person"> |
文章加密
原範例屬於前端密碼檢查,不能保護已下載到瀏覽器或公開儲存庫的原文。需要真正限制閱讀權限時,需使用相應的存取控制;不要把此範例當成機密內容保護。
打開themes\next\layout\_partials\head\head-unique.swig文件,文末插入這個程式碼:
1 | {# 文章密碼設置 #} |
然後打開要加密的文章,文章開頭放入這個:
1 | title: // 標題 |
調整和上傳
本機預覽、產生靜態檔與部署是三個階段。先確認內容與路徑,再產生網站,最後核對部署目標與 Pages 的發布來源。
在每一個設定變更後,我習慣會做以下動作
1 | hexo server // 在本機瀏覽器查看 |
先在本機上看看是否有什麼問題,持續進行微調,最後設定都沒有問題後,再進行配置上傳。
1 | hexo clean // 清除舊的發布設定 |
若我已經在`_config.yml輸入
1 | # Deployment |
在執行hexo deploy或hexo d時,卻發生了ERROR Deployer not found: git的錯誤訊息。
請在終端機執行
1 | cd 到安裝目錄 |
編輯新增文章
撰寫文章都集中放在\source目錄下,最常用到的大概就是source\_posts裡的檔案了。
新增建立 “name”.md 檔案,副檔名為.md,也可以參考預設hello-world.md的檔案做參考。
也可以利用以下語法,新增MD檔:
1 | Hexo new [文章類型] [檔名] |
Hexo是使用MarkDown(MD)格式,每篇文章開頭基本上都一樣,
新文章加入以下內容:(---切記一定要加入)
1 | --- |
文章類型:
- post:最常碰到的一般文章。
新增的檔案會放在\source\_posts資料夾內建立[檔名].md的檔案。- - page:不會出現在首頁中。
基本上拿來撰寫about或tags之類的頁面。
這類型會在\source\下建立檔名資料夾,並在檔名資料夾下新增index.md檔案。 - draft:草稿。
未完成的文章可先放在草稿區。一般生成不會包含草稿,但仍需留意 render_drafts 或生成時的草稿選項。
草稿會存放在\source\_drafts底下,檔名為檔名.md。
編輯完後,可以透過指令hexo publish draft檔名轉成正式文章;之後仍需生成與部署,公開網站才會更新。
再來選擇一款合適自己的md編輯器,和使用一些常用md語法就能完成一篇文章了。
個人我這邊都是使用 Visual Studio Code (VS Code) 編輯器。
MD語法(Markdown)
網路上已經有很多可以參考的資料了,若有需要可以自行去查。
這裡我提供兩個連結,我覺得不錯的。
GIT教學網站(gitbooks):markdown風格
markdown文件(中文版):markdown文件
內容撰寫小技巧
(學會新技巧後,此部分會不定時更新)
字形樣式
文字字型與顏色:
1 | <font face="標楷體" color="red">我是紅色的標楷體</font> |
我是紅色的標楷體
文字大小
1 | <font size="16px">文字大小</font> |
文字大小:16px
文字置中
1 | <center>置中</center> |
置中
刪除線
刪除寫法:
1 | ~~刪除線~~ |
刪除線
也可以用以下寫法:
1 | <del>刪除線</del> |
我被刪除了
縮排
有些人在排版上,希望一段文字首行要空兩個全形空白。
半形空白:可輸入一般空白字元。
全形空白: 
添加空白行
Markdown 的段落通常以空白行分開,不必靠大量空白字元排版。
原紀錄中的&ensp。
表示空白字元,並不會自動建立新段落。
另外,也可以使用<br />或<p />時,需注意 br 用於換行,p 應使用成對標籤建立段落;單獨寫 p 的自閉合形式不是正確的段落寫法。版面間距更適合由 CSS 控制。
圖片樣式設定
Markdown檔放入圖片語法
1 |  |
範例:
1 |  |
原範例圖片來源已失效,無法下載;上方 Markdown 語法仍可參考。
設定首頁文章【繼續閱讀】功能
【繼續閱讀】
在部落格首頁時,會將每篇文章以全文方式顯示,但有些文章太長了,導致要拖拉很久才能找到下一篇。
在希望摘要結束的位置加入<!-- more -->(建議讓分隔標記獨立成行),首頁的文章,就會只顯示到此行,讀者就要自行點選more才能觀看全文。
範例
1 |
|
使用表格
hexo支援表格的,表格寫法如下:(表格前記得要空一行,這才能形成表格)
1 |
|
呈現結果:
| 標題1 | 標題2 | 標題2 |
|---|---|---|
| 靠左靠左靠左 | 靠中靠中靠中 | 靠右靠右靠右 |
| 靠左靠左靠左 | 靠中靠中靠中 | 靠右靠右靠右 |
常用的文字編輯
常見寫法:
1 | # 標題一 |
建立內容後,先核對標題、日期、分類、圖片與連結,再預覽全文。這份筆記保留當時的設定做法,後續修改仍應以所用版本的文件為準。
參考文章
名稱 Theme NexT:Next官方部落格
作者 Allen Tzeng:使用 Github page 製作個人網站 – 以 Hexo / Next 製作部落格
作者 蓝蓝223:hexo d命令报错 ERROR Deployer not found: git
作者 yashuning:hexo-下一頁主題添加搜尋功能
發布前後的確認
發布前確認首頁、文章、分類、圖片與內部連結都能在本機開啟;個人網站與專案網站需特別核對根路徑。發布後再開啟公開網址,查看實際內容與資源是否更新,避免把本機預覽成功當成公開網站已完成。

