如何在不使用Jekyll插件的情况下为Front Matter数字添加千位分隔符?
无需插件实现Jekyll数字千位分隔格式化
可以直接借助Liquid模板结合Ruby的字符串处理能力实现,不需要额外安装插件。
实现方法
将原来的变量调用代码:
{{ page.my_number }}
替换为以下代码:
{{ page.my_number.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\1,').reverse }}
原理说明
to_s:将数字转换为字符串类型reverse:反转字符串,方便从右往左按三位分组gsub(/(\d{3})(?=\d)/, '\1,'):用正则匹配每三位数字(仅当后面还有数字时),并在分组后添加逗号reverse:再次反转字符串,恢复正常顺序,得到带千位分隔符的格式
特殊情况处理
如果Front Matter中的数字是以字符串形式声明的(比如my_number: "1000000"),需要先转换为整数再处理:
{{ page.my_number | to_i | to_s.reverse.gsub(/(\d{3})(?=\d)/, '\1,').reverse }}
内容的提问来源于stack exchange,提问作者Matt Smith
相关产品推荐
相关产品推荐

