ReadingTime
Syntax
PAGE.ReadingTime
Returns
int
The estimated reading time is calculated by dividing the number of words in the content by the reading speed.
By default, Hugo assumes a reading speed of 212 words per minute. For CJK languages, it assumes 500 words per minute.
{{ printf "Estimated reading time: %d minutes" .ReadingTime }}
Reading speed varies by language. Create language-specific estimated reading times on your multilingual site using site parameters.
hugo.
languages:
de:
contentDir: content/de
languageCode: de-DE
languageName: Deutsch
params:
reading_speed: 179
weight: 2
en:
contentDir: content/en
languageCode: en-US
languageName: English
params:
reading_speed: 228
weight: 1
[languages]
[languages.de]
contentDir = 'content/de'
languageCode = 'de-DE'
languageName = 'Deutsch'
weight = 2
[languages.de.params]
reading_speed = 179
[languages.en]
contentDir = 'content/en'
languageCode = 'en-US'
languageName = 'English'
weight = 1
[languages.en.params]
reading_speed = 228
{
"languages": {
"de": {
"contentDir": "content/de",
"languageCode": "de-DE",
"languageName": "Deutsch",
"params": {
"reading_speed": 179
},
"weight": 2
},
"en": {
"contentDir": "content/en",
"languageCode": "en-US",
"languageName": "English",
"params": {
"reading_speed": 228
},
"weight": 1
}
}
}
Then in your template:
{{ $readingTime := div (float .WordCount) .Site.Params.reading_speed }}
{{ $readingTime = math.Ceil $readingTime }}
We cast the .WordCount
to a float to obtain a float when we divide by the reading speed. Then round up to the nearest integer.