よくブログサイトなんかで「この記事を読むのにかかる時間」が表示されてたりするじゃないですか。
WordPress だと Reading Time WP
というプラグインがあるのですが、
これと同じものを hugo で探してみたところ、
ページ生成時に計算して埋め込んでしまう方法が記事になっていたのでやってみました。
対象記事の文字数をカウントして、220文字を読むのに1分かかるとして計算するわけですね。
実際に実装してみたコードがこちら。
{{/* 読むのにかかる時間を割り出して */}}
{{ $readTime := mul (div (countwords .Content) 220.0) 60 }}
{{/* 分と秒に分解して */}}
{{ $minutes := math.Floor (div $readTime 60) }}
{{ $seconds := mod $readTime 60 }}
{{/* 0分や0秒だったら表示しないようにする */}}
この雑記は約
{{- if gt $minutes 0 -}}{{ $minutes }}分{{- end -}}
{{- if gt $seconds 0 -}}{{ $seconds }}秒{{- end -}}
で読めます
そして実際に表示してみたのがこんな感じ。
いい感じにできあがりました。