新课题:
页尾之前加了个全站字数统计,现在字数超十万了,我想给它加个单位,然后再模糊一点
也就是说,从显示“共嘟嘟了 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 @Hydrangea @injellyfish 不好意思打扰了,保留小数点的方法是 lang.FormatNumber:

共嘟嘟了{{ div ($scratch.Get "total") 1000.0 | lang.FormatNumber 2 }}k字.

gohugo.io/functions/lang/#lang

它之所以把这个功能放到 lang 下面,是因为比如说中法双语的博客,切换到法语后小数点自动改成逗号:123.45 → 123,45

@zero 这个方法简单欸!感谢您的补充,原来还有这种函数哇!

Sign in to participate in the conversation
小球飞象

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