Hugo 0.57.0 更新後、Posts のみが表示されるようになった場合。
日本では Hugo をブログで使っている人が多いので、
注意を促すために記事を入れておきます。
テーマによっては Hugo 0.57.0 以降へ更新すると
トップページが Posts のみの表示になる場合があります。
このブログで使用しているテーマ Tranquilpeak はこの問題が発生します。
早速テーマの issue に報告しました。
すると hugoThemes に関連付けされ、解決手段が出てきました。
とりあえずこの方法を紹介しておきます。
テーマファイルを編集可能な場合
ここでは該当サイトの Hugo 構成部分
(config.toml といくつかのフォルダがあるところ)を / とします。
/layouts/ 内に index.html があればこれを開きます。
ない場合は /themes/テーマ名/layouts/index.html を /layouts/ にコピーして、
これを開いて下さい。
/themes/ 内は git clone や git submodule で更新する前提になっているので、
この中のファイルは通常編集しません。
index.html から次のような部分があります。
$paginator 以外の名称になっている可能性があります。
また、post 以外が対象の場合は post が異なります。
{{ $paginator := .Paginate (where .Data.Pages "Type" "post") }}
この .Data.Pages を .Site.RegularPages へ変更します。
.RegularPage は 0.57.0 で追加されていて、従来の .Pages と同等の動きをします。
.Pages の動作が変わった事が今回の不具合が発生している要因です。
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "post") }}
編集が必要なのはこれだけです。
コマンドラインより hugo server で正常に表示される事を確認し、
その後更新して下さい。
これは Hugo 0.57.0 に限られた一時的な対応になる可能性があります。
後にテーマ側または Hugo 側で修正が入ったら
index.html の再修正(または削除)が必要になると思われます。
テーマファイルの編集が難しい場合
はやければ数日~数週間にはテーマが更新されるでしょう。
また更新が発生するテーマがいくつか発生していると思われるため、
このままでは混乱があり、後に Hugo 側で修正が入る可能性があります。
(現状ではテーマ側で編集すると、そのテーマは Hugo 0.57.0 以降限定になってしまいます)
解決があるまでは Hugo 0.56.3 を維持しておくのも一手段です。
関連情報
Hugo 公式サイトのアナウンス。Notes にこの記載があります。
Hugo をダウンロードできる GitHub の release ページにも記載されています。
https://github.com/gohugoio/hugo/releases/tag/v0.57.0
その後 Tranquilpeak はこの修正が反映されました。(0.4.6-BETA→0.4.7-BETA)
このブログでは /layouts/index.html を生成していましたが、
テーマを更新後、削除しても正常に表示できています。
https://github.com/kakawait/hugo-tranquilpeak-theme/commit/2ebbd3c4f2b98c5aa1d41ee2512fd5396d4de8c2
追加 2019/08/16
Hugo 0.57.1 へ更新されました。新たな変更も出ていますが、
とりあえずこの記事の変更を行えれば、そのまま有効です。
話の進捗からすると、おそらくテーマ側での対応という事になりそうなので、
いくつかのテーマは影響があるかもしれません。