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の最終コミット日を返すという設定がされる。...

October 6, 2021 Â· Shunya Ueta

Hugo Tips

Hugo 0.32から page bundle が使用可能に この機能で画像ファイルを以下のファイル構成で構築できる 1 2 3 - hoge/ - index.md - hoge.png これにより、markdown とアセットファイルが同一ディレクトリ内に収まるのでアセットファイルの管理が簡単になる hugo new で特定のエディタを開くには? 1 hugo new posts/hoge.md --editor="code" 作成時にslug に日付を含める 今回は2020-09-09の形式で slug を作成する 1 hugo new posts/$(date '+%Y-%m-%d')/index.md page をビルドして結果を確認する 1 hugo server 下書きも含めてビルドする 1 hugo server -D

June 16, 2019 Â· Shunya Ueta