Featured image of post Hugoで作ったサイトの更新日時がNetlifyでgitと連動しない問題を解決した

Hugoで作ったサイトの更新日時がNetlifyでgitと連動しない問題を解決した

背景 Link to this heading

Hugoで作ったサイトでは、変数.Lastmodで更新日時を扱える。 たとえば、Stack のテーマでは、 layouts/partials/article/components/footer.html.Lastmodを用いて更新日時を表示している。

変数.Lastmodは、記事のヘッダでlastmodを設定することで、任意の値に変更できる。 これを設定しない場合は、デフォルトで1下記が利用される。

config.yaml
frontmatter:
  lastmod:
    - :git
    - lastmod
    - date
    - publishDate

このうち:gitは、Hugoで使える変数.GitInfo.AuthorDateを指す。 この変数.GitInfo.AuthorDateは、HugoのconfigファイルでenableGitInfotrueにすると有効化される。

config.yaml
enableGitInfo: true

つまりHugoでは、変数.GitInfo.AuthorDateを利用することで、ファイルの更新日時を手動で変更せずとも、 gitの履歴からファイル更新日時を自動で取得してくれる。

問題 Link to this heading

背景で述べたように、適切な設定をすれば、gitの履歴からファイル更新日時を自動で取得できる。 しかし、筆者の環境では、手元でhugo serveするとgitの履歴が反映されるにもかかわらず、 Netlifyでホスティングして公開すると反映されない不具合が生じた。

何が原因だったのか Link to this heading

Stackのテーマでは、content/post/<folder name>/index.mdに記事を格納する。 不具合の原因は、この<folder name>に日本語が含まれていたことだった。 どうやらパスに日本語が含まれていると、gitの履歴をうまく取得できないらしい。

解決策 Link to this heading

記事を格納するフォルダ名をASCII文字のみ2で構成されるように変更した。

参考文献・URL Link to this heading


  1. このデフォルト値は、Hugoのconfigファイルで設定しなくても反映される。 ↩︎

  2. より正確には、アルファベットとハイフンとアンダーバーのみにした。 ↩︎

Licensed under CC BY-NC-SA 4.0
最終更新 5月 21, 2023
Hugo で構築されています。
テーマ StackJimmy によって設計されています。