From 48d4da4f1b0ee6d8a095fca301e6f3486a35f0b2 Mon Sep 17 00:00:00 2001 From: jeffreytse Date: Mon, 11 Jan 2021 11:18:35 +0800 Subject: [PATCH] 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 +++++++++++++++++++++-- _includes/views/pagination.html | 1 + _includes/views/post-header.html | 1 + 3 files changed, 24 insertions(+), 2 deletions(-) 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 %} diff --git a/_includes/views/pagination.html b/_includes/views/pagination.html index bcc3620..c1814e3 100644 --- a/_includes/views/pagination.html +++ b/_includes/views/pagination.html @@ -13,6 +13,7 @@ {%- assign date_format = site.yat.date_format | default: "%b %-d, %Y" -%} {% assign article = post.content %} + {% assign lang = post.lang %} {%- include functions.html func='get_reading_time' -%} {% assign reading_time = return %} diff --git a/_includes/views/post-header.html b/_includes/views/post-header.html index df6447b..e59fd91 100644 --- a/_includes/views/post-header.html +++ b/_includes/views/post-header.html @@ -9,6 +9,7 @@ {% assign article = page.content %} + {% assign lang = page.lang %} {%- include functions.html func='get_reading_time' -%} {% assign reading_time = return %} {{ reading_time }}