文章页面显示字数统计很常见,也没啥好说的,但当我们把所有文章的字数都加起来,就有点意思了。多年的博客,积累下来真不容易。

简书是个好平台,可是当年宣传便冠以“最好的中文写作和阅读平台”,我对其的好感度降了些。今天进某人的简书个人页面,看到显示了总字数,话说以前咋没发现,在每篇文章底下的作者简介,也有显示写了多少字。

我便想到了在自己博客也显示个总字数,再没意思至少能装装逼。

字数统计

关于单篇文章的字数统计,TaoAlpha 的这篇文章《Jekyll 中如何做中文字数统计》[1]已经说得够清楚的。但我觉得还是得再加一个过滤器,去掉所有的空格,一篇文章下来无无空格还是挺多的。也就是说 Jekyll 统计文章中文字数的代码如下:

{{ page.content | strip_html | strip_newlines | remove: " " | size }}

还是感觉不妥,如果是纯中文的还行,但是例如本篇文章这种带代码段的,那字数偏差就有点大了,有没有解决方法呢?有是有的,怎么破,这篇就暂不提及,就先以上面的为准吧。

对于阅读分钟数,我的代码如下:

{{ page.content | strip_html | strip_newlines | remove: " " | size | divided_by: 350 | plus: 1 }} 

因过滤器 divided_by 得出的值是去尾的整数,故我觉得还是加一比较合理。

总字数统计

所有文章的字数加起来就是总字数,没啥技术含量,我就直接贴代码了。

{% assign count = 0 %}
{% for post in site.posts %}
    {% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}
    {% assign count = count | plus: single_count %}
{% endfor %}

{% if count > 10000 %}
    {{ count | divided_by: 10000 }}{{ count | modulo: 10000 }}
{% else %}
    {{ count }}
{% endif %} 

为了方便看,字数过万就加个万字。

参考资料

本文历史

  • 2017 年 05 月 23 日 完成初稿