首页  >  All Categories  >  Random  >  Zola 博客的中文阅读时间预估误差很大,所以我做了一个修复

Zola 博客的中文阅读时间预估误差很大,所以我做了一个修复

我发现 Zola 给中文文章的阅读时间预估特别高,比如我刚发布的这篇给 Zola 博客增加搜索功能, 显示要 20 分钟才能阅读完:

发布于: 2022-07-12 · 最后更新时间: 2022-07-12 · 阅读时间: 20 min

我就纳闷我这是写了一篇 essay 吗,于是就是查它的实现, 发现实现很简单,就是基于 unicode 字符除以了一个数:

/// Get word count and estimated reading time
pub fn get_reading_analytics(content: &str) -> (usize, usize) {
    let word_count: usize = content.unicode_words().count();
    (word_count, ((word_count + 199) / 200))
}

然后他在注释里链接了这个数字的来源,证明它不是拍脑袋决定的, 来源是 Medium 的文档:

Read time is based on the average reading speed of an adult (roughly 265 WPM). We take the total word count of a post and translate it into minutes, with an adjustment made for images. For posts in Chinese, Japanese and Korean, it’s a function of number of characters (500 characters/min) with an adjustment made for images.

这篇文档说英文这类字符大约是 265 个单词每分钟,中日韩这类文字是 500 个字符每分钟,所以对于中文来讲,zola 这个计算是有大约 1 倍的误差的,所以我加了一个判断:

{% macro get_reading_time(minutes) %} {% if lang=="zh" %} {{ minutes/1.88 |
round }} {% else %} {{ minutes }} {% endif %} {% endmacro get_reading_time %}

然后在page.html里可以这样调用:

{{ macro::get_reading_time(minutes=page.reading_time) }}

这样应该就能修正中文的预估时间了。修正后,开头提到的文章现在预估时间大约是 11 分钟,比较合理了。

分类: Random 
标签ZolaAbout
发布于:   📝 帮我完善这个页面?

该博客没有评论系统,我正在实验有意义的讨论是否更易在社群中发生,不知道为什么,人在社群中,似乎会有更好的行为规范。然后如果有高质量的讨论,我会手动再精选到原文。为此,我建立了一个 Telegram 讨论群组,你可以在里面讨论这篇文章,点此复制文章标题和链接