Hexo 4.1.0 リリース

破壊的変更

  • Node 8.10 以上が必要 #3778
    • Node 8 は1ヶ月以内に非推奨になる予定です。Node 10 以降へのアップグレードを強くお勧めします。
  • og:locale Open Graph タグは、language:(設定、投稿/ページのフロントマター、または open_graph() ヘルパー)がlanguage-TERRITORY形式でない場合、挿入されません #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 ヘルパー #3782

    • 使用例
    • テーマレイアウトの <head> 要素内に以下のスニペット(EJSを使用している場合)を挿入します。
    <%- meta_generator() %>
    • <meta name="generator" content="Hexo 4.1.0"> を出力します
    • Hexo 3.9.0 以降はタグを自動的に挿入します。パフォーマンス上の利点(meta_generator ヘルパー)を得るには、meta_generator: オプションを無効にする必要があります。
    _config.yml
    meta_generator: false
  • js() #3681 および css() #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">
  • バックティックコードブロックを <table> 要素でラップする有効/無効を切り替える wrap: オプションのサポート #3827

    • デフォルトで有効になっており、line_number を有効にするとこれも有効になります
    • highlight: で設定します
    _config.yml
    highlight:
    line_number: false # must be disabled to disable wrap:
    wrap: false
    • このオプションは codeblock() タグプラグインにも渡すことができます #3848
    {% 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 new または hexo --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 でエイリアスを使用する際に、不要なフロントマターの挿入を防止する #3830

    • -p--path のエイリアスです
    • -s--slug のエイリアスです
    • -r--replace のエイリアスです
  • 投稿のアセットフォルダに オプションinclude: および exclude: を適用する #3882

  • ignore: オプションは、フォルダに加えてファイルにも機能するはずです [#3878]

整理

  • オープンソースソフトウェアライセンスコンプライアンス用の FOSSA ライセンスアナライザーを追加 #3779
  • 回帰を検出するために CI でベンチマークを実行 #3776
  • lodash の使用量をさらに削減 #3786, #3788, #3790, #3785, #3809, #3791, #3810, #3826, #3867, #3845
  • ユニットテストの最後に不要なファイルを削除 #3792
  • npm に資金調達ソースを追加 #3851
  • strip-ansi を 5.2.0 から 6.0.0 にアップデート #3852
  • chalk を 2.4.2 から 3.0.0 にアップデート #3853