Hugov0.119.0→v0.143.1へのアップグレードで、色々修正した

Posted:

Hugoをv0.119.0からv0.143.1アップデートした際に、自分の運営に関係があった箇所の修正を色々やったので、その備考録を残すよ。


構成ファイル関係

まず、Hugoのサイト構成ファイル内でKeyの構成が色々変わっていた。
あと、公式のドキュメントが構成やFront matterの記述などはTOMLが最初だったけど、いつの間にかYAMLが最初になってた。

変わらずTOMLもJSONも使えるけど、個人的にYAMLの方が見やすくて好きなのでヨシ。
設定ファイルやFront matterの記述もYAYMLでしていたので、この記事でもYAMLで統一する。

サイトの著者を設定するKeyが変更(v0.120.0)

旧:

1
2
params:
  author: Kazuya

新:

1
2
3
params:
  author:
    name: Kazuya

組み込みのTwitter Cardテンプレートを使う場合、Twitter IDを設定するkeyを変更する(v0.120.0)

旧:

1
2
social:
  twitter: kazya_h

新:

1
2
3
params:
  social:
    twitter: kazya_h

GoogleAnalyticsのID指定のkeyが変更(v0.120.0)

旧:

1
googleAnalytics: G-xxxxxxxxxx

新:

1
2
3
services:
  googleAnalytics:
    ID: G-xxxxxxxxxx

関数関係

.IsServer関数の変更(v0.120.0)

旧:

1
{{ .Site.IsServer }}

新:

1
{{ hugo.IsServer }}

テンプレート関係

partialテンプレートの呼び出し方が厳密になった

厳密になったことで、レンダリングエラーが頻発した。

以下、partialsフォルダ内の例。

  • partials
    • head.html
    • footer.html
    • widgets
      • archives.html

呼び出し記述。
旧:v0.119.0ではこれでビルドも通る

1
2
{{ partial "head" . }}
{{ partial "widgets/archives" . }}

新:拡張子を含む記述が必要になってた

1
2
{{ partial "head.html" . }}
{{ partial "widgets/archives.html" . }}

.Summaryの表示が変わった(v0.134.0)

以前はプレーンテキストを返していたが、v0.134.0でHTMLを返すようになった。
プレーンテキストを返して欲しい場合は以下の通り。

1
{{ .Summary | plainify }}

Paginationのpartialファイルでエラーにハマった

Hugoをv0.143.1にアップデートしたところ、サーバーを立ち上げようとしたらこれまで使っていたPaginationのpartialファイルでエラーが発生した。

Error: error building site: render: failed to render pages: render of “/note” failed: “Z:\sdk\hugo\retro_v4\themes\rstyle\layouts\note\list.html:23:3”: execute of template failed: template: note/list.html:23:3: executing “main” at <partial “pagination.html” .>: error calling partial: “Z:\sdk\hugo\retro_v4\themes\rstyle\layouts\partials\pagination.html:50:91”: execute of template failed: template: partials/pagination.html:50:91: executing “partials/pagination.html” at <.RelPermalink>: can’t evaluate field RelPermalink in type *page.Pager

Google先生に翻訳してもらったところ、
「*page.Pager型のフィールドRelPermalinkを評価できない」
というエラーメッセージだった。

このブログのページャーはこちらのコードを参考にカスタマイズしているもので。

修正前は、ページ番号を出力するこの箇所に{{ .RelParmlink }}が使われていた。

1
2
3
{{/* Output page numbers. */}}
{{- if eq ($.Scratch.Get "page_number_flag") true }}
<li class="page-nav-number{{ if eq . $paginator }} current{{ end }}"><a href="{{ .RelParmlink }}" class="pagination__link" role="button">{{ .PageNumber }}</a></li>

v0.119.0ではこれで問題なくビルドできるけども、v0.143.1ではエラーになる。
エラーメッセージで検索したらどれもこれも「.RelParmlink使え」って(英語で)書いてあって。
でもそれだとエラーになるやん?とマニュアルとにらめっこしていたら、.RelParmlinkじゃなくて.URLでよくない?ということに気付いて修正したらサーバーが立ち上がった。

この修正をした翌日に元のコードのページを見に行ったら、{{ .RelParmlink }}のところが{{ .URL }}になってて、気付いて修正したのかなぁとかなんとか。


今のところは、関係あるのはこのくらいだった。
こういう時、自作のテーマだと自分が必要な機能しか乗せてないから状況把握しやすくていいなぁとか思いました。



SEARCH:

ARCHIVE:

▲PageTOPへ