48d4da4f1b
The liquid filter `number_of_words` is for english words, so here we use a calculation to estimate accurately the words, especially when the language is not English.
61 lines
1.2 KiB
HTML
61 lines
1.2 KiB
HTML
{% if include.params.article %}
|
|
{% assign article = include.params.article %}
|
|
{% endif %}
|
|
|
|
{% if include.params.lang %}
|
|
{% assign lang = include.params.lang %}
|
|
{% else %}
|
|
{% assign lang = lang | default: site.lang | default: "en" %}
|
|
{% endif %}
|
|
|
|
{% if include.params.speed %}
|
|
{% assign speed = include.params.speed %}
|
|
{% else %}
|
|
{% assign speed = 160 %}
|
|
{% endif %}
|
|
|
|
{% assign words = article | number_of_words %}
|
|
|
|
{% if lang != "en" %}
|
|
{% assign words = words
|
|
| times: 0.6
|
|
| round %}
|
|
{% assign words = article
|
|
| strip_html
|
|
| strip_newlines
|
|
| size
|
|
| times: 0.4
|
|
| plus: words
|
|
| round %}
|
|
{% endif %}
|
|
|
|
{% assign total_mins = words
|
|
| divided_by: speed
|
|
| at_least: 1 %}
|
|
|
|
{% assign hours = total_mins | divided_by: 60 %}
|
|
{% assign mins = total_mins | modulo: 60 %}
|
|
|
|
{% assign return = "About" %}
|
|
|
|
{% if hours > 0 %}
|
|
{% assign unit = "hour" %}
|
|
{% if hours > 1 %}
|
|
{% assign unit = unit | append: "s" %}
|
|
{% endif %}
|
|
{% assign return = return
|
|
| append: " "
|
|
| append: hours
|
|
| append: " "
|
|
| append: unit %}
|
|
{% endif %}
|
|
|
|
{% assign unit = "min" %}
|
|
{% if mins > 1 %}
|
|
{% assign unit = unit | append: "s" %}
|
|
{% endif %}
|
|
{% assign return = return
|
|
| append: " "
|
|
| append: mins
|
|
| append: " "
|
|
| append: unit %}
|