Hugo で記事の更新日をgitと連携して自動的に取得して表示させる
最近昔書いていた技術記事の情報が古くなりすぎて不正確なこともあったので、書き直すときがあったのだが、そのときに自動的に最終更新日を記事に表記できないか探していたら、実現方法があったのでメモしておきます。 やっていることは Last Modified Date with Hugo の記事をと完全に一緒だが、日本語での情報が無かったので備忘録がてら記録を残す。 Hugo は各ページに関する情報をFront Matter Variables という仕組みで Markdown 上に定義します。 主に YAML 形式で記述されていることが多いです。 lastmod という変数が更新日を表す変数であり、この変数に対して更新日の情報を与えてやれば記事の最終更新日を表現することができる。 Front Matter に lastmod: "2021-03-31" の形式で与えておけば、以下の形式で記事作成日と最終更新日を表記できる。 1 2 3 4 5 {{ $date := .Date.Format "02.01.2006" }} {{ $lastmod := .Lastmod.Format "02.01.2006" }} <p>Published on: {{ $date }}</p> <p>Edited on: {{ $lastmod }}</p> だが、毎回記事を編集するたびに lastmod 変数を追記するのは面倒なので自動化できるなら自動化したい。 config.yaml で、以下の設定を行う。 1 enableGitInfo:true enableGitInfoを trueにすることで、各ページに対してGit 情報を更新日として付与してくれる。 最後にconfig.yaml で以下の設定を行えば、 Front Matter の lastmod 変数に対して、 Front Matter で定義されているlastmod、もしその情報がなければ各ページの gitの最終コミット日を返すという設定がされる。...