最近又又又又换博客的地址了, 主要是发现了新的好用的工具Vercel, 又更新了一些相关内容, 刚好又遇到了一些问题

问题

博客还是使用hexo进行搭建, 这次没有继续使用next的主题, 而是用来butterfly, 在进行busuanzi网站访客数量的统计的时候又发现了之前的问题, busuanzi没有初始化的功能(好像好几年了已经), 之前使用next的时候是使用的swig进行配置, 不过找到了相关的文章进行了修改, 一直使用到了现在, 所以同样的问题又出现了

:+1:不想看解决的过程, 直接看解决方法

解决过程

首先是在butterfly的github的进行了沟通, 虽然没有具体的解决思路, 不过也得到了思路

其实这个问题并不困难, 思路也比较简单, 获取到当前的计数, 加上初始化的数量可以

解决方法

先修改_config.yml下的busuanzi配置

1
2
3
4
5
6
7
8
9
# busuanzi count for PV / UV in site
# 訪問人數
busuanzi:
site_uv: true
site_pv: true
page_pv: true
# 新增以下的配置
init_pv: 10000
init_uv: 10000

再修改\theme\butterfly\layout\widget下card_webinfo.pug文件

简单来说, 每隔一段时间检查下是否获取到busuanzi的信息, 如果获取到了, 则更新新设定好的数量再进行显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
script.
function checkPv(){
var init_pv = parseInt(!{theme.busuanzi.init_pv})
var pv = document.getElementById("busuanzi_value_site_pv")
if (pv.innerText === ''){
setTimeout(checkPv, 100)
} else {
pv.innerText = parseInt(pv.innerText) + init_pv
}
}
script checkPv()

script.
function checkUv(){
var init_uv = parseInt(!{theme.busuanzi.init_uv})
var uv = document.getElementById("busuanzi_value_site_uv")
if (uv.innerText === ''){
setTimeout(checkUv, 100)
}else{
uv.innerText = parseInt(uv.innerText) + init_uv
}
}
script checkUv()