ReadingTime
Returns the estimated reading time, in minutes, for the given page.
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.
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.
Last updated:
December 4, 2023
:
Squashed 'docs/' changes from 4d936aee6..4dd2d6415 (35dec7c96)
Improve this page