Hexo 4.0.0 リリース

Hexo v4にアップグレードするには、`package.json` の以下の行を変更してください。

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

破壊的変更

  • chore: Node 6 のサポート終了 #3598
  • fix: タイトルにエスケープされていないHTML文字が含まれる場合の `post_link`、`asset_link` の修正 #3704
    • `asset_link`、`post_link`、タグプラグイン に影響します。
    • エスケープされていない文字を保持したい場合は、最終引数に `false` を設定してください。`{% asset_link 'filename' 'title' 'false' %}`
  • fix: 既定でパーマリンクをエンコード #3708
    • 現在 `encodeURI(post.permalink)` (ページ、タグ、カテゴリ変数の `permalink` を含む)を使用している場合、3つの選択肢があります。
      1. Hexo v3.9(およびそれ以前)との下位互換性を維持するには、`encodeURI(decodeURI(post.permalink))` を使用してください。
      2. Hexo-util が提供する `encodeURL()` 関数 を使用してください。これは下位互換性があります。
      3. `encodeURI()` 関数を削除します。これは下位互換性を破棄します。
    • デコードされた形式で変数を使用したい場合、
      • `decodeURI(post.permalink)` を使用してください。
      • Hexo-util の `decodeURL()`punycode ドメインをデコードできます。
    • この変更は `this.url` 変数には適用されません。
  • fix(paginator): hexo-util 1.3.0 との互換性のために `escape` オプションを追加 #3728
    • テーマ開発者の方へ: HTML を使用して `prev_text`/`next_text` をカスタマイズしている場合(例:アイコンを挿入する場合)、パラメーターに `escape: false` を設定する必要があります。

新機能

  • feat(filter): 可能な場合は既存の抜粋を使用 #3612

  • minimatch から micromatch に変更 #3538

  • feat: メタジェネレータタグを無効にするオプションを追加 #3653

    • 無効にするには、設定に `meta_generator: false` を追加します。
  • feat(generator): 並列生成の制限を許可 #3665

    • 「メモリ不足」の問題が発生する場合は、`hexo g --concurrency ` で値を小さくしてみてください。
  • 更新日としてファイルの最終更新時刻の代わりに日付を使用するオプション #3235

    • `post.updated` 変数でファイルの最終更新時刻を使用しない場合は、設定に `use_date_for_updated: true` を設定してください。
  • feat(list_tags): スキーマ「keywords」とマイクロデータ「tag」を追加 #3678

  • feat(permalink_variable): URL から index.html を削除する pretty_urls オプションを追加 #3691

    • 末尾の `index.html` を `permalink` 変数 から削除するには、次の設定を使用してください。
    pretty_urls:
    trailing_index: false
    • `this.url` 変数には適用されません(#3661 を参照)。
    • 既存の canonical 関連プラグインと互換性があるはずです。プラグインとテーマの開発者はテストすることをお勧めします。
  • feat: `full_url_for` ヘルパーを追加 #3701

    • `config.url + page.path` の代わりに、このヘルパー `full_url_for(page.path)` を使用してください。
  • fix: external_link は after_render を使用する必要があります #3675

    • `field` および `exclude` オプションを追加しました。ガイドについては、#3675 を参照してください。

パフォーマンス

  • perf(meta_generator): cheerio を削除 #3671
  • perf(open_graph): cheerio を削除し、正規表現を使用 #3680
  • perf(external_link): cheerio を削除し、正規表現を使用 #3685
  • perf(cache): すべてのモードでキャッシュを強制 #3756

修正

  • fix: 既定の言語を英語に設定 #3654
  • フロントマターでタイトルが指定されていない場合にファイル名を使用 #3672
  • fix: 投稿数がゼロのカテゴリ/タグを無視 #3624
  • fix(open_graph): URL から index.html を削除 #3661
  • fix(open_graph): 重複する Twitter カードタグを削除 #3668
  • fix(helpers, tag plugins): 既定で URL をエンコード #3710
    • デコードの方法については、#3708 を参照してください。
  • fix(open_graph): URL をパーセントエンコードし、HTML エスケープしない #3686
  • fix: 「blockquote」タグプラグインでバックティックコードブロックを許可 #2321
  • fix: blockquote のバックティックコードブロックの処理を修正 #3765
  • fix: バックティックコードブロックの最後に余分な改行文字を挿入しないようにする #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