1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-12-27 10:52:09 +00:00
seirdy.one/layouts/partials/post-meta/wordcount.html
Seirdy d46de9ce29
Use "an" instead of "a" in some reading times
"11" and "18" minute reading times now use "an" as they start with a
vowel sound but aren't qualified by "short", "somewhat long", "long", or
"very long". before, it said "a 11 minute read" but now it'll say "an 11
minute read".
2024-09-13 01:01:34 -04:00

24 lines
1.1 KiB
HTML

{{ $displayCount := string .WordCount -}}
{{- if gt .WordCount 5000 -}}
{{- $thousands := string (div .WordCount 1000) -}}
{{- $displayCount = printf "%s thousand" $thousands -}}
About
{{- end -}}
<data itemprop="wordCount" value="{{ .WordCount }}">
{{- $displayCount -}}
</data> words
{{- with .ReadingTime -}}
{{- $displayTime := string . -}}
{{- if gt . 60 -}}
{{- $hours := div . 60 -}}
{{- $minutes := mod . 60 -}}
{{- $displayTime = (printf "%d&#160;hour and %d" $hours $minutes) | safeHTML -}}
{{- end -}}
{{- $indefiniteArticle := "a" -}}
{{- $vowelNumbers := slice 11 18 -}} {{/* 11 and 18 aren't qualified by "short" or "somewhat long" and start with vowel sounds so we need to say "an" instead of "a" */}}
{{- if (in $vowelNumbers .) -}}
{{- $indefiniteArticle = "an" -}}
{{- end -}}
; {{ $indefiniteArticle }} {{ if lt . 10 }}short {{ else if and (gt . 20) (lt . 30) }}somewhat long {{ else if and (gt . 29) (lt . 60) }}long {{ else if gt . 59 }} very long {{ end -}}
<time itemprop="timeRequired" datetime="PT{{ . }}M">{{ $displayTime }}&#160;minute</time> read
{{- end -}}