beautifulhugoで更新日時が表示されない症状

Failed to get translated string for language "ja" and ID "lastModified": template: :1:22: executing "" at <.Count>: can't evaluate field Count in type string

* 本ページはプロモーションが含まれています

現在も使用しているHugoのテーマであるBeautifulhugoですが、更新日時が表示されない症状が出たので対処

ちなみに、hugoのバージョンは0.80.0です

症状 

  • ローカルでサーバ起動すると、下記のエラーで更新日時が表示されない
$ hugo server -D
....
Failed to get translated string for language "ja" and ID "lastModified": template: :1:22: executing "" at <.Count>: can't evaluate field Count in type string
  • Netlifyでデプロイしているので、netlify.toml内でhugoのバージョンを上げると同症状
...
[context.production.environment]
HUGO_VERSION = "0.80.0"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"

原因 

エラー表記を見ると、<.Count>表記が問題になっているようで、beautifulhugo/i18n/内のen.yamlやja.yamlなどに使われています。

Hugo 0.76のバージョン以降で症状が出るようです

解決方法 

beautifulhugoテーマをダウンロードしたりForkしたりしていると、そのままen.yamlなどに使われている<.Count>をCount文字を取り除く事で対処出来ます。

-  translation: "Posted on {{ .Count }}"
+  translation: "Posted on {{ . }}"
 - id: lastModified
-  translation: "(Last modified on {{ .Count }})"
+  translation: "(Last modified on {{ . }})"

submodule化 

submoduleで管理している場合は、i18nをルートディレクトリに配置しても読み込んでくれないので、submoduleをアップデートすることで対処します

$ git submodule status
 1ff3894b84b1802433b58e22dd22f4eb46a49fa9 themes/beautifulhugo (1ff3894)
$ git submodule update --remote
Submodule path 'themes/beautifulhugo': checked out '99ca240e9977196207da2e09c3804d3e98c14e57'

後は、git add;git commit -aでpushしてやれば良いです

これで、netlify.toml内のhugoのバージョンを上げても大丈夫ですね。
もちろん、netlify.tomlもgit pushする必要がありますので忘れずに!


See also