Hexo 4.0.0 版本已發佈

若要升級至 Hexo v4,請在您的 package.json 中更改以下這行:

-  "hexo": "^3.9.0",
+ "hexo": "^4.0.0",

重大變更

  • chore: 移除 Node 6 #3598
  • 修復標題包含未跳脫 HTML 字元時的 post_link 和 asset_link 問題 #3704
    • 影響 asset_linkpost_link 標籤外掛
    • 若您想要保留未跳脫的字元,請將 false 設定為最後一個參數 {% asset_link 'filename 'title' 'false' %}
  • 修復:預設編碼永久連結 #3708
    • 若您目前使用 encodeURI(post.permalink) (包含頁面、標籤和分類變數的 permalink),有三個選項:
      1. 使用 encodeURI(decodeURI(post.permalink)) 來與 hexo v3.9 (和更舊版本) 相容
      2. 使用 hexo-util 提供的 encodeURL() 函式,它具有回溯相容性
      3. 移除 encodeURI() 函式,這會破壞回溯相容性
    • 若您想要以解碼形式使用變數,
      • 請使用 decodeURI(post.permalink)
      • hexo-util 的 decodeURL() 可以解碼 Punycode 網域。
    • 此變更不適用於 this.url 變數。
  • 修復 (分頁器):新增 escape 選項以與 hexo-util 1.3.0 相容 #3728
    • 主題開發者,若您使用 HTML 自訂 prev_text/next_text (例如插入圖示),您需要在參數中設定 escape: false

功能

  • feat(filter): 盡可能使用現有的摘錄 #3612

  • 將 minimatch 切換為 micromatch #3538

  • feat: 新增選項以停用 meta generator 標籤 #3653

    • 在設定中新增 meta_generator: false 以停用
  • feat(generator): 允許限制平行生成 #3665

    • 若您遇到「記憶體不足」的問題,請嘗試降低 hexo g --concurrency <number> 中的值
  • 選項可以使用日期而非檔案修改時間作為更新日期 #3235

    • 若您不希望在 post.updated 變數中使用檔案修改時間,請在設定中設定 use_date_for_updated: true
  • feat(list_tags): 新增 Schema "keywords" 和 Microdata "tag" #3678

  • feat(permalink_variable): 新增 pretty_urls 選項以從 URL 中移除 index.html #3691

    • 使用以下設定從 permalink 變數 中移除尾部的 index.html
    pretty_urls:
    trailing_index: false
    • 不適用於 this.url 變數 (請參閱 #3661)。
    • 應該與現有的規範相關外掛相容,建議外掛和主題開發者進行測試
  • feat: 新增 full_url_for 輔助函式 #3701

    • 使用此輔助函式 full_url_for(page.path) 而不是 config.url + page.path
  • 修復:external_link 應使用 after_render #3675

    • 新增 fieldexclude 選項,請參閱 #3675 以取得指南。

效能

  • perf(meta_generator): 移除 cheerio #3671
  • perf(open_graph): 移除 cheerio 並使用 regex #3680
  • perf(external_link): 移除 cheerio 並使用 regex #3685
  • perf(cache): 強制跨模式快取 #3756

修復

  • 修復:將英文設定為預設語言 #3654
  • 若在 front-matter 中未指定標題,則使用檔名 #3672
  • 修復:忽略沒有文章的分類/標籤 #3624
  • 修復(open_graph):從 URL 中移除 index.html #3661
  • 修復(open_graph):移除重複的 Twitter 卡片標籤 #3668
  • 修復(輔助函式、標籤外掛):預設編碼 URL #3710
    • 請參閱 #3708 以取得關於解碼的指南。
  • 修復(open_graph):百分比編碼 URL,而非 HTML 跳脫 #3686
  • 修復:允許在「blockquote」標籤外掛中使用反引號程式碼區塊 #2321
  • 修復:正確處理 blockquote 上的反引號程式碼區塊 #3765
  • 修復:避免在反引號程式碼區塊的末尾插入額外的換行符號 #3768

依賴

  • chore(deps): 將 tildify 要求從 ^1.2.0 更新為 ^2.0.0 #3541
  • chore(deps): 將 strip-indent 要求從 ^2.0.0 更新為 ^3.0.0 #3534
  • chore(deps-dev): 將 husky 要求從 ^1.1.3 更新為 ^3.0.0 #3608
  • chore(deps-dev): 將 eslint 要求從 ^5.9.0 更新為 ^6.0.1 #3606
  • chore(deps-dev): 將 lint-staged 要求從 ^8.1.0 更新為 ^9.1.0 #3615
  • chore: 更新至 hexo-util 1.0.1 和 hexo-renderer-marked 2.0.0 #3646
  • chore(deps): 將 hexo-i18n 要求從 ^0.2.1 更新為 ^1.0.0 #3698
  • chore(deps): 將 hexo-fs 要求從 ^1.0.0 更新為 ^2.0.0 #3699
  • chore(deps): 將 hexo-front-matter 要求從 ^0.2.3 更新為 ^1.0.0 #3700
  • chore(deps): 將 hexo-log 要求從 ^0.2.0 更新為 ^1.0.0 #3730
  • chore(deps): 將 warehouse 要求從 ^2.2.0 更新為 ^3.0.0 #3736
  • chore(deps): 將 hexo-cli 從 2.0.0 升級至 3.0.0 #3743