Hugo のテーマとして Hermit を使っていました。しかしこれは最終コミットが2020年6月であり、Hugo 0.71.1 の頃のものです。現行は0.110.0 なのでなかなかまずいです。
昨年から気づいていたのですが、面倒で更新をサボってました。
通常の CMS? だとそれでもいいんだろうけど、 Hugo の場合はまだメジャーバージョンが 0 なので破壊的変更がありうるので心配。ちなみにバージョンは 0.71.1 から 0.89.4 まであがっている。
— Yu SUGAWARA (@gusmachine) May 5, 2022
重い腰を上げてテーマの乗り換えをすることにしました。Hugo Themes | blog で上から探します。条件は以下を考えました。
- GitHub Stars が300以上ある。
- デモがある。
- モバイル版でちゃんと見える。
- Lighthouse でのパフォーマンスが悪くない。
- 謎の js,css をロードしていない。
- たくさんの web font をロードしていない。どうせ日本語で書くのでフォントは適用されないことが多いので。
- Google Analytics 対応。手で入れてもいいけど。
以下のテーマを見ました。
- academic : とっても有名。ただ Netlify しない場合の導入方法がよくわからないのと、Netlify は日本から遠いサーバしか居なかった記憶があるので嫌。
- clarity: woff2 多い。
- bear blog: むしろ何もないやつ. Google Analytics と image support くらいは欲しい。
- papermod: これも何もない系。でも機能はある。よく見る価値はある。
- hello friend: vercel が遠くてLCP/FID が遅い. あと謎のフォントが多い
- hello friend ng: デモがない。
- jane: 何故か Google Tag Manager 由来でFIDが高い。これ async load されているみたいだから FID に影響を与えているのがよくわからない。
まず、デモのサーバが遠かったり、機能を加えているために遅かったりするのもあって上の条件があまり合理的じゃないことがわかりました。仕方ないです。かわりに適宜 Chrome のネットワークタブと HTML を眺めて適切なものを選びました。
今回は papermod を入れてみることにしました。軽い割に必要な機能はありそうです。 Star もたくさんついています。正しい道は academic をもっと調べることかもしれませんが。
やることはかなり面倒でした。
- git submodule add でテンプレートを入れる。
- サイトのテンプレートと出力結果を見ながら config.yaml を書き換える。
- 昔必要だった shortcodes やハックを消す。
- GA4テンプレートとか、特殊なイメージ用タグとかを消しました。
- RSS が出てそうか確認。
- 直前の記事が RSS で途中までしか出てなかったことを発見しました。 more tag 中にスペースが入っていました。
- hugo で出力した後、URLなどが変わっていないか確認。
- デプロイ
- Analytics が動いていることを確認。