hugoの更新してたら出たエラー対処色々

目次

久しぶりにローカルでhugoを建てていじろうと思ったらエラー出てしまったのでその対処ログ。

環境

hugo:0.150.0+extended テーマ:mainroad

_default/baseof.html

can’t evaluate field IsServer in type page.Site

↑となっているのでbaseof.htmlの .Site.IsServer を hugo.IsServer に書き換える。

.Site.IsMultilingual

.Site.IsMultilingualを片っ端から見つけてすべてhugo.IsMultilingualに書き換える。

.Site.Author

Site.Authorを片っ端から見つけてSite.Paramに書き換える。

なおhugo.tomlのような設定ファイルで

[Author]
 name
 avater

↑のようになっていたら

[Param]
 name
 avater

としてParamにすべて入れる。

_partials/comments.html

たぶんこれはテーマによるところが大きいと思います。

{{ if and hugo.Services.Disqus.Shortname (index .Params "comments" | default "false") (not hugo.IsServer) }}
<section class="comments">
	{{ template "_internal/disqus.html" . }}
</section>
{{ end }

↑Mainroadはいじっていなければこうなっている。いた。

これの問題としてのエラーメッセージは

: can’t evaluate field Services in type interface {}

これはDisqusを使ったコメントについてなのだがこの機能自体使っていないのでとりあえず楽に変更。

{{ if (index .Site.Params "comments" | default false) }}
  <section class="comments">
      {{ template "_internal/disqus.html" . }}
  </section>
{{ end }}

↑にしてhugo.tomlで[Params]の中にcomments=true/falseで決めればon/offできる感じに。

Google Analytics

hugo.tomlの書き方を変更

googleAnalytics = "hogehoge"
[services]
  [services.googleAnalytics]
    ID = "hogehoge" 

.Site.GoogleAnalyticshugo.Services.GoogleAnalytics.IDに片っ端から変更。

その他

なんかローカルとgithub actionのバージョン合わせてもうまくいかず原因探ったらテーマのbaseof.htmlのファイルだったみたいでgithubから最新のbaseof.htmlファイルをテーマリポジトリからコピーしたら直った。

hugoは仕組み上しょうがないですがテーマの更新はしないのでたまには気にしたほうがいいかもですね。

感想・雑記

正直このブログに新機能とかはほとんど加える気はないのでhugoのバージョンを固定してしまってもいい気はするがなんとなく最新にしておきたい。それでエラー対処の時間増えているならあんまりな気もするが。