owenyoung 08月18日
Zola 博客的中文阅读时间预估误差很大,所以我做了一个修复
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Zola博客默认将中文阅读时间预估过高,基于字符数而非字数计算,导致中文文章显示20分钟阅读时间不合理。经分析Medium文档,中文阅读速度约为500字符/分钟,而Zola按英文265词/分钟计算,存在约1倍误差。通过自定义宏修正计算方式,将字符数除以1.88得到更准确的中文阅读时间,修正后本文预估时间从20分钟降至11分钟,更符合实际。

📈Zola默认中文阅读时间预估基于字符数计算,而非字数,导致中文文章显示时间远高于实际需求。

📚Medium文档指出,中文阅读速度约为500字符/分钟,远低于英文的265词/分钟,Zola采用英文标准计算中文阅读时间存在约1倍误差。

🔍通过分析Zola源码,发现其计算方式为word_count / 200,并在注释中链接Medium文档作为依据,证明并非随意设定。

✅通过自定义宏{% macro get_reading_time(minutes) %} {% if lang="zh" %} {{ minutes/1.88 | round }} {% else %} {{ minutes }} {% endif %} {% endmacro get_reading_time %}修正计算方式,将字符数除以1.88得到更准确的中文阅读时间。

📈修正后,原本预估20分钟的文章,实际阅读时间降至11分钟,更符合中文用户的阅读习惯和平台预期。

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

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

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

/// Get word count and estimated reading timepub 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 分钟,比较合理了。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Zola 中文阅读时间 阅读时间预估 字符数计算 技术优化
相关文章