Hugo で生成したブログに「この記事を読むのにかかる時間」を追加する

よくブログサイトなんかで「この記事を読むのにかかる時間」が表示されてたりするじゃないですか。

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 -}}
で読めます

そして実際に表示してみたのがこんな感じ。

画像1

いい感じにできあがりました。

参考にしたサイト


この記事をシェアする
Built with Hugo
テーマ StackJimmy によって設計されています。