⌛ Hugoで更新日が古い記事にアラートを入れる

2020-11-20 #Development

表題の通りなのですが、このブログにも技術系の記事がちらほら存在するので、情報が古くなった時の表記を入れておく事にしました。

条件分岐は後述の参考にさせていただいた記事の通りで動いたのですが、あと n 年っていう表記も入れたくなったので、下記のようにしています。

{{ if gt (now.AddDate -1 0 0) .Lastmod }}
  <div class="since">
    この記事は最終更新日から{{ sub (time (sub now.Unix .Lastmod.Unix)).Year (time 0).Year }}年以上経過しています
  </div>
{{ end }}

「今日の日付と最終更新日の差分」と「time 0」との差分で経過年数を出しています。

参考記事: https://blog.kotet.jp/2018/09/hugo-outdated-alert/


あとはこれを表示させておきたい技術系の記事とそうではない記事の条件分岐が必要で、Front Matterにフラグを入れるか迷ったのですが、あんまり更新していないブログとはいえ10年超の記事を見返すのは骨が折れそうなのでカテゴリを見て判別する事にしました。

{{ $hasTag := false }}
{{ if ne .Params.categories nil }}
  {{ range .Params.categories }}
    {{ if or (eq . "Markup") (eq . "Development") (eq . "Unity") (eq . "JavaScript") }}
      {{ $hasTag = true }}
    {{ end }}
  {{ end }}
{{ end }}

なんかもっと綺麗な書き方あるやろ…とは思いますが僕のなけなしのGo力ではここまでです…

comments powered by Disqus
Profile
😛

石原 悠 / Yu Ishihara

デザインとプログラミングとヨーグルト作りが好きです。