Hexo 4.1.0 版本發佈

重大變更

  • 需要 Node 8.10 或以上版本 #3778
    • Node 8 將在不到一個月內停止維護,強烈建議升級至 Node 10 或更新的版本
  • 如果 language: (在設定檔、文章/頁面的 front-matter 中或 open_graph() 輔助函數中)的格式不是 語言-地區 的格式,則不會插入 og:locale Open Graph 標籤 #3808
    • en 是無效的
    • en-GB 是有效的
    • 並非所有地區設定都支援 (例如 en-AU 是無效的),請參閱官方列表
    • 多語言支援必須使用破折號 (例如 “en-GB”),破折號在 og:locale 中會自動轉換為底線 (例如 “en_GB”)
    • 在變更 language: 設定之前,請先確認對應的檔案是否存在於已安裝主題的 languages/ 資料夾中

功能

  • 支援在文章永久連結中加入小時和分鐘 #3629

    • 使用範例
    _config.yml
    permalink: :year/:month/:day/:hour/:minute/:title/
    • 結果會是 https://example.com/2019/12/09/23/59/a-post/
  • 插入 article:published_time #3674 article:author #3805 Open Graph 標籤

  • 在與 iframe 相關的標籤外掛中啟用 lazyload #3798

  • meta_generator 輔助函數,用於插入 metadata 元素標籤 #3782

    • 使用範例
    • 將以下程式碼片段 (如果使用 EJS) 插入到佈景主題版面的 <head> 元素中,
    <%- meta_generator() %>
    • 會輸出 <meta name="generator" content="Hexo 4.1.0">
    • Hexo 3.9.0+ 會自動插入該標籤;為了獲得效能優勢 (meta_generator 輔助函數),應停用 meta_generator: 選項,
    _config.yml
    meta_generator: false
  • js() #3681css() #3690 輔助函數中支援自訂屬性

    • 使用範例
    <%- js({ src: 'script.js', integrity: 'foo', async: true }) %>
    // <script src="/script.js" async></script>

    <%- css({ href: 'style.css', integrity: 'foo' }) %>
    // <link rel="stylesheet" href="/style.css">
  • 支援 wrap: 選項,以啟用/停用在 <table> 元素中包覆反引號程式碼區塊 #3827

    • 預設為啟用,啟用 line_number 也會啟用它
    • highlight: 中設定
    _config.yml
    highlight:
    line_number: false # must be disabled to disable wrap:
    wrap: false
    {% codeblock lang:js wrap:false %}
    const foo = (bar) => {
    return bar;
    };
    {% endcodeblock %}
    • 輸出為:
      const foo = (bar) => {
      return bar;
      };

修正

  • 保留區塊引號中附加的程式碼區塊中的空白行 #3770

  • 將已棄用的 og_updated_time Open Graph 標籤替換為 article:modified_time #3674

  • 將已棄用的 keywords Open Graph 標籤替換為 article:tag #3805

  • meta_generator 標籤應插入跨越多行的 <head>#3778

  • 當執行 hexo newhexo --help 時,不再清除資料庫 db.json #3793

  • 完全忽略 ignore: 選項中指定之檔案/資料夾 #3797

    • 如果在主題中使用 Webpack 或相關工具,node_modules 資料夾可能會導致一些問題
    • 一個暫時的解決方案是將 Hexo 設定為忽略該資料夾,
    _config.yml
    ignore: '**/themes/*/node_modules/**'
    • 在未來的版本中,將不再需要此解決方案
  • jsfiddle、vimeo 和 youtube 標籤外掛現在僅使用 https #3806

  • external_link 篩選器不應處理資料 URL (例如 mailto:javascript:) [#3812] 和 <article> 元素 #3895

  • 防止在使用 Hexo CLI 中的別名時不必要地插入 front-matter #3830

    • -p--path 的別名
    • -s--slug 的別名
    • -r--replace 的別名
  • include:exclude: 選項套用至文章的資源資料夾 #3882

  • ignore: 選項應適用於檔案以及資料夾 [#3878]

內部整理