Hexo NexT 主題更新

本篇撰寫時 Hexo 及 NexT 版本如下,不同版本可能會有功能或設定方式上的差異!
Hexo 版本: hexo: 6.0.0
Next 版本: hexo-theme-next-8.8.2 升級到 8.9.0

NexT 官方團隊在收集一定數量 Bugfix / Feature Request 的情況下,原則上會每月更新一次,可以先參考官方公布的版本更新內容再決定要不要更新。

不過,更新通常是為了優化(custom_file_path 真的讓主題更新方便很多)、排除障礙或提高安全性,理論上可以有更好的使用體驗,所以如果有更新提醒我應該還是會盡快處理。

另外,隨著技術的進步,舊有的方式可能會被淘汰(像是以前的 .swig 已被 .njk 替代),為了避免跨大版本更新造成需要大幅度調整的麻煩,建議更新頻率不要太低。

近年 NexT 主題大改革

如果查詢網路上較久以前的教學文章,會發現很多東西都跟新版本搭不起來了。以我自己建置部落格的過程和踩過的坑,感覺最大的變化如下:

1. Custom Files 用法(v7.3.0 啟用)
以前要把 NexT 主題改得更有個人風格(ex.改背景、在文章底部加文字、增減頁腳文字…等),都需要改動 layout 資料夾裡相對應的檔案原始碼。一旦進行版本更新,原本作好的設定被直接覆蓋,造成很多困擾。

自啟用 Custom Files 用法後,所有的程式碼修改一律放在 root\source\_data 資料夾裡,只要到 root\_config.next.yml 設定讀取路徑就可以直接套用。因為設定檔不是放在主題資料夾內,就算版本更新也不造成影響。

2. Nunjucks 引擎(v7.4.2 啟用)
網路上較久以前的教學文章,都會說要修改 .swig 檔,但我找半天都找不到,後來看官方文件才發現,因為 swig 缺乏维護,NexT 自 v7.4.2 開始,改用 Nunjucks 代替 swig 作为模版引擎,檔案類型變成 .njk ,網路上的教學文章已不適用。

npm 安裝(官方推薦)

主題資料夾位置: root\node_modules\hexo-theme-next
打開 root\node_modules 資料夾會發現,之前用 npm 安裝的各種插件都在這裡面。原則上這個資料夾的東西都不會手動修改,只用 npm 指令處理,後續用 npm 更新或解除安裝基本都是改動這裡。

NexT 主題更新只要進到 Blog 的根目錄擇一執行以下指令即可。

1
2
3
npm install hexo-theme-next           # 默認最新版本
npm install hexo-theme-next@latest # 安裝最新版本
npm install hexo-theme-next@8.9.0 # 安裝指定版本

更新完成後,參考更新說明。如果有想用的新功能,直接在 root\_config.next.yml 修改設定即可。

如果沒有這個檔案,請參考Hexo NexT 主題變更 & 設定 章節 4.1 說明。

git 安裝(太久沒更新推薦)

主題資料夾位置: root\themes\主題名稱資料夾

1
2
cd 根目錄
git clone https://github.com/next-theme/hexo-theme-next.git themes/next

我剛開始使用 NexT 主題時是使用這種方式(因為搞不懂 npm 指令到底在背後執行什麼)。看了各種網路教學作個人化設定,改動了不少 NexT 主題原始碼,然後因為跟 git 不熟,不小心整個覆蓋掉,整個重來得很崩潰(跑題了)。後來使用 npm 安裝各種插件習慣,且啟用 custom_file_path 後,覺得 npm 方式比較方便。

git 安裝推薦使用對象:
1. 有改動 NexT 主題原始碼,不想直接覆蓋的人。
使用 git pull 等方式更新合併,主題必須加入版本控制。鑒於目前我跟 Git 還是很不熟,這裡就不多作說明。
2. 太久沒更新,直接覆蓋可能會出現很多問題,需要大量調整的人。
使用這種方法的人,可以在資料夾後加版本編號作新舊版區隔,等調整完成後,在 root\_config.yml 設定要套用哪個版本就可以了。

文章內容如有錯誤,歡迎留言討論!


本 Blog 上的所有文章除特别聲明外,均採用 CC BY-SA 4.0 協議 ,轉載請註明出處!