From 48d4da4f1b0ee6d8a095fca301e6f3486a35f0b2 Mon Sep 17 00:00:00 2001 From: jeffreytse Date: Mon, 11 Jan 2021 11:18:35 +0800 Subject: fix: reading time was incorrect for cjk words (#20) 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. --- _includes/functions/get_reading_time.html | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to '_includes/functions') diff --git a/_includes/functions/get_reading_time.html b/_includes/functions/get_reading_time.html index 7747108..e1d23fe 100644 --- a/_includes/functions/get_reading_time.html +++ b/_includes/functions/get_reading_time.html @@ -2,14 +2,34 @@ {% 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 total_mins = article - | number_of_words +{% 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 %} -- cgit v1.2.3