從去年開始, GitHub 的 dependabot 就會自動偵測 repositories 內 npm 使用的相依套件,如果有安全性問題,bot 就會自動通知並發起 pull request,提醒要更新。

因我的部落格也很久沒更新了,索性就一次將 HexoNexT 的主題一起更新到最新版,順便紀錄一下作法方便之後再更新。

大版本更新通常會有 breaking changes,更新後發現有不少問題,因 config 自訂的地方也不多,決定整個打掉重練。

步驟

  1. 建一個全空的 hexo 部落格

    # 更新 hexo-cli
    npm install hexo-cli -g
    # 初始化 hexo 至 update_blog 資料夾
    hexo init update_blog
    cd update_blog
    # 安裝部署使用的套件 hexo-deployer-git
    npm install hexo-deployer-git
    
  2. 打開 blog 資料夾底下的 package.json,確認 hexo 版本 ("hexo": "^4.2.1")

  3. 將原本部落格資料夾內的 scaffoldssource 資料夾複製到 update_blog

  4. 將原本部落格資料夾內的 themes/next 資料夾複製到相對應之路徑

  5. 刪除沒有用到的預設主題 themes/landscape

  6. 下載最新的 NexT 主題

    cd update_blog
    # 因這邊要保留原本舊的 next 主題,所以將新版主題放到不同資料夾
    git clone https://github.com/theme-next/hexo-theme-next themes/hexo-theme-next
    
  7. 調整設定檔,這邊都直接使用新版的 yml 檔案

    1. 比對新舊 _config.yml,有 調整過的設定 我用 #@~@ 註記起來,以後比較好找
  8. 調整主題設定檔

    1. 比對 themes\hexo-theme-next\_config.ymlthemes\next\_config.yml,將有調整過的設定改寫至根目錄底下 _config.ymltheme_config: 區塊 好處是主題內的設定檔就維持預設的樣子,以後可以整個資料夾更新,統一在同個設定檔案也比較好維護
    2. 另外 NexT 文件 內有提到,也可以將設定寫到 source/_data/next.yml,就看個人選擇
  9. 完成之後可以在本機下 hexo server,看一下有無問題

  10. 最後就可以將變更 push 到遠端 hexo 分支,之前設定的 Travis CI 就會自動幫我們部署到 GitHub Pages 啦~

其他

參考網址

Update from NexT v5.1.x