HUGOのバージョンを久しぶりに上げたらbuild時にエラーが沢山でてしまった
約3年ぶりに記事を追加するときに当ブログで使用している、HUGOを「hugo v0.138.0」にバージョンアップをさせてしまったら、エラーが沢山出てしまってHtmlから出力出来なったので、色々調べて解決したのでメモを残します。
使用しているテーマは「hugo-tranquilpeak-theme」になります。
目次
古いgoogle analytics tagでエラーが起きる
エラーメッセージ
ERROR render of "term" failed: "\hugoblog\eiteblog_tranquilpeak\layouts\taxonomy\category.html:1:3": execute of template failed: template: taxonomy/category.html:1:3: executing "taxonomy/category.html" at <partial "head.html" .>: error calling partial: execute of template failed: html/template:partials/head.html:62:18: no such template "_internal/google_analytics_async.html"
ERROR render of "404" failed: "\hugoblog\eiteblog_tranquilpeak\layouts\404.html:1:3": execute of template failed: template: 404.html:1:3: executing "404.html" at <partial "head.html" .>: error calling partial: execute of template failed: html/template:partials/head.html:62:18: no such template "_internal/google_analytics_async.html"
ERROR render of "page" failed: "\hugoblog\eiteblog_tranquilpeak\layouts\_default\single.html:1:3": execute of template failed: template: _default/single.html:1:3: executing "_default/single.html" at <partial "head.html" .>: error calling partial: execute of template failed: html/template:partials/head.html:62:18: no such template "_internal/google_analytics_async.html"
Total in 1257 ms
Error: error building site: render: failed to render pages: render of "home" failed: "\hugoblog\eiteblog_tranquilpeak\layouts\index.html:1:3": execute of template failed: template: index.html:1:3: executing "index.html" at <partial "head.html" .>: error calling partial: execute of template failed: html/template:partials/head.html:62:18: no such template "_internal/google_analytics_async.html"
tranquilpeakテーマだとhugoプロジェクトディレクトリ内のthemeディレクトリ配下にある以下のファイルを修正する 「hugosite/themes/hugo-tranquilpeak-theme/layouts/partials/head.html」
google analyticsは使っていないので、取り急ぎ下記コードを削除でエラーは消える
{{ if or .Params.googleAnalytics.async .Params.ga.async }}
{{ template "_internal/google_analytics_async.html" . }}
{{ else }}
{{ template "_internal/google_analytics.html" . }}
{{ end }}
参考サイト:Hugoのバージョンアップで発生したエラーを修正する - タカツのサイト
inhibitPaths から InihibitPageに変更
ERROR render of "sitemap" failed: "\\HashiNas4116B5\home\work\git\hugoblog\eiteblog_tranquilpeak\layouts\sitemap.xml:3:13": execute of template failed: template: sitemap.xml:3:13: executing "sitemap.xml" at <where $pages ".File.Path" "not in" $.Site.Params.InhibitPaths>: error calling where: runtime error: invalid memory address or nil pointer dereference
.InihibitPaths を .InihibitPage に変更する
「hugoblog\eiteblog_tranquilpeak\layouts\partials\meta.html」
該当エラー
#{{ if or (in $.Site.Params.InhibitSections .Section) (in $.Site.Params.InhibitPaths .File.Path) }}<meta name="robots" content="noindex">{{ end }}
エラー消える
{{ if or (in $.Site.Params.InhibitSections .Section) (in $.Site.Params.InhibitPage .Page.Path) }}<meta name="robots" content="noindex">{{ end }}
「hugoblog\eiteblog_tranquilpeak\config.toml」
#inhibitPaths = ["privacy.md","about.md"] エラーが出たのでPathsをPageに変える
inhibitPage = ["privacy.md","about.md"]
sitemapも修正「hugoblog\eiteblog_tranquilpeak\layouts\sitemap.xml」
InhibitPaths から InhibitPageに変更 他に".File.Path" を “.Page.Path"に修正しています。
#{{- $pages = where $pages ".File.Path" "not in" $.Site.Params.InhibitPaths -}}
{{- $pages = where $pages ".Page.Path" "not in" $.Site.Params.InhibitPage -}}
参考: Hugoでnoindexタグを設定する(フロントマター使用) - タカツのサイト
authorもエラーが出ていたので変更する
Authorのエラー
ERROR deprecated: .Site.Author was deprecated in Hugo v0.124.0 and will be removed in Hugo 0.137.0. Implement taxonomy 'author' or use .Site.Params.Author instead.
「hugoblog\eiteblog_tranquilpeak\config.toml」
[author]
name = "イーアイテ E・I・Te"
bio = "主にLinuxやサーバの事など徒然と書いていきます。"
job = "Your job title"
location = "Japan"
↓に
[params.author]
name = "イーアイテ E・I・Te"
bio = "主にLinuxやサーバの事など徒然と書いていきます。"
job = "Your job title"
location = "Japan"
参考 Hugoのバージョンアップで発生したエラーを修正する - タカツのサイト
hugoの「tranquilpeak/layouts/partials/about.html」
{{ .Site.Author.location }} を {{ .Site.Params.author.location }} に変更
configのdisqusも廃止になったのでdisqus.shortnameに修正
ERROR deprecated: .Site.DisqusShortname was deprecated in Hugo v0.120.0 and will be removed in Hugo 0.137.0. Use .Site.Config.Services.Disqus.Shortname instead.
「hugoblog\eiteblog_tranquilpeak\config.toml」
[params.comment]
[params.comment.disqus]
#↓に変更
[params.comment]
[params.comment.disqus.shortname]
参考 Hugoの「.Site.IsServer」が非推奨になったのでテンプレート修正 -STYSK BLOG
以上になります。
お疲れ様でした。