在Hexo的NexT主题里不蒜子统计问题修复

起因

今天在调整自己的博客的时候,启用了不蒜子的统计功能,但是发现统计数据异常,于是尝试最小代价修复问题。

分析

经过一番Google,发现该问题早有人提出,并且已经有了修复方案,但是并不完美,在Safari上有硬伤。而巧合的是在今年初有人上线了Vercount服务,改进了不蒜子。但是如果要在Hexo中实现和不蒜子一样的效果,得动手改些代码。经过衡量,决定在启用NexT主题的不蒜子统计配置的基础上将不蒜子代码修改为Vercount的代码。

处理

修改hexo-theme-next/layout/_third-party/statistics/busuanzi-counter.njk文件为如下内容:

1
2
3
{%- if theme.busuanzi_count.enable %}
<script defer src="https://vercount.one/js"></script>
{%- endif %}

启用NexT配置中的style: source/_data/styles.styl,在文件中添加如下内容来覆盖默认行为:

1
2
3
4
5
6
7
8
9
#busuanzi_container_page_pv {
display: inline;
}
.busuanzi-count #busuanzi_container_site_uv {
display: inline;
}
.busuanzi-count #busuanzi_container_site_pv {
display: inline;
}

结果

数据统计恢复正常,但是目前有些小小的问题,即每次使用npm重新安装或更新依赖后需要手动修改hexo-theme-next中的源码。

参考

  1. Hexo-NexT不蒜子配置
  2. 不蒜子相关Issue
  3. Vercount网站计数器