https://hexo.io/news/2020/07/29/hexo-5-released/

Hexo 5.0.0 がリリースされていたので導入してみました。

  • さらに高速になったようです。
  • メモリ使用量が減った気がします。
  • フロントマターにpublished: falseを設定できるようになりました。以下を追記しました。
    ./scalfolds/post.md
    published: true

環境

  • Windows Insider Preview Build 20180
    • WSL (Ubuntu)
      • n 6.5.1
      • node v14.7.0
      • npm 6.14.7
        • hexo 5.0.0

構築

  1. バックアップ
    $ mv blog _blog
  2. node の更新
    $ n latest
    $ node --version
    v14.7.0
    $ npm --version
    6.14.7
    $ n --version
    6.5.1
  3. Hexo のインストール
    $ npm install hexo
  4. blog の初期化
    $ npx hexo init blog
    $ cd blog
    $ npm install
  5. プラグインのインストール
    $ npm i -S hexo-deployer-git
    $ npm i -S hexo-filter-mermaid-diagrams
    $ npm i -S hexo-generator-feed
    $ npm i -S hexo-generator-search
    $ npm i -S hexo-pdf
    $ npm i -S hexo-related-popular-posts
    $ npm i -S hexo-tag-googlecharts
    $ npm i -S hexo-tag-table-bootstrap
    $ npm i -S hexo-tag-twitter
  6. モジュールの修正
  • 前回と同様の修正
    https://ktkr3d.github.io/2020/02/27/hexo-related-popular-posts/

  • キャッシュの構造変更対応

    Key Value
    ソース ./node_modules/hexo-related-popular-posts/lib/list-json.js
    置換前 locals.cache.cache.posts
    置換後 locals.cache.cache.get(“posts”)
  • テーマ関連の修正

    Key Value
    ソース ./themes/freemind/layout/partial/footer.ejs
    置換前 theme.mermaid
    置換後 config.mermaid
  1. バージョンの確認
    $ hexo --version
    INFO Validating config
    hexo: 5.0.0
    hexo-cli: 4.1.0
    os: Linux 4.19.121-microsoft-standard linux x64
    node: 14.7.0
    v8: 8.4.371.19-node.12
    uv: 1.38.1
    zlib: 1.2.11
    brotli: 1.0.7
    ares: 1.16.0
    modules: 83
    nghttp2: 1.41.0
    napi: 6
    llhttp: 2.0.4
    openssl: 1.1.1g
    cldr: 37.0
    icu: 67.1
    tz: 2020a
    unicode: 13.0

データの移行

  • バックアップからインポート
    $ cd ~/blog
    $ cp ../_blog/google-services.pem .
    $ cp -r ../_blog/source .
    $ cp -r ../_blog/scalfolds .
    $ cp -r ../_blog/theme .
    $ mv ./blog/themes/freemind/_config.yml ./_config.freemind.yml
    ⚠️Hexo 5.0.0 からテーマの設定ファイルをルートに./_config.[theme].yml の名称で配置することが推奨されているようです。設定内容は ./_config.[theme].yml > ./[theme]/_config.yml の優先順位でマージされます。混乱を避けるために移動しておいた方がよさそうです。

_config.yml の更新

  • 移行元の_config.yml を参考に作成
  • prismjs の項目が増えていたがそのまま
  • external_link の仕様変更
  • use_date_for_updatedupdated_option に仕様変更

生成とデプロイ

  • 生成とデプロイ
    $ hexo g && hexo d