新课题:
页尾之前加了个全站字数统计,现在字数超十万了,我想给它加个单位,然后再模糊一点
也就是说,从显示“共嘟嘟了 125126 字”,变成显示“共嘟嘟了12.5k字”

hexo那边装个插件就行,hugo是用的 .WordCount,模糊字数用.FuzzyWordCount应该可行,但加单位怎么加呢……

@Hydrangea 早上好!不知道问题有没有得到解决……我参考了南狐的方法,大致是这样:
{{ div ($scratch.Get "total") 1000 }}
意思是把总字数除以一千,之后在“字”前面手动加上k就好了

@injellyfish 哇谢谢!

不好意思地说我其实还没有开始解决,昨天只是写了个to-do 嘟嘟,因为感觉不是太难,准备今晚从“研究这个函数的名字叫什么”学起……

@Hydrangea @injellyfish
这里 Div(ides) 是除法的意思
好像确实没有保留几位小数的选项,所以可能要更麻烦一下了,

{{$var := $scratch.Get "total"}}
{{$var = div $var 100.0}}
先除到百位,然后再用附带的向上(或下)取整函数,
{{$var = math.Ceil $var}}
然后再除多一位
{{$var = div $var 10.0}}
这样就是保留一位小数的数字了。

当然更偷懒的方法就是循环里换成
{{$scratch.Add "total" .FuzzyWordCount}}
这个函数,文章多 1 个字也会当作 100 个字,这样就抹掉了零头,保证能除尽。当然每篇文章这样算,每篇文章都会多算一百字了。

@SouthFox @injellyfish 是,我中午是直接换成fuzzywordcount的,误差很大,而且明显会随着文章数量的增加越来越大。

你说的计算过程,是应该放在{{ range (where .Site.Pages "Kind" "page" )}}这部分吗?

@Hydrangea
这样好像会超出变量的作用域?
应该在你写一共写了 xx 字那一代码块开头那里声明变量并处理数据,
然后最后在一共写了 xx 字那里替换为一开始声明的变量名就行了。

@SouthFox

{{$var := $scratch.Get "total"}}{{$var = div $var 100.0}}{{$var = math.Ceil $var}}{{$var = div $var 10.0}}共嘟嘟了 {{$scratch.Get "total"}}字
这样吗?

Sign in to participate in the conversation
小球飞象

本实例是獭獭客厅,提供小球飞鱼,壁炉,风铃,獭獭提灯,散乱的书本和小雪人