美文网首页
hexo中butterfly主题busuanzi计数手动初始化

hexo中butterfly主题busuanzi计数手动初始化

作者: 又似在水一方 | 来源:发表于2021-11-28 18:47 被阅读0次

通过我的博客, 来查看此文章

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

问题

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

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

解决过程

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

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

<div id="answer"></div>

解决方法

先修改_config.yml下的busuanzi配置

    # 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的信息, 如果获取到了, 则更新新设定好的数量再进行显示

    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()

相关文章

网友评论

      本文标题:hexo中butterfly主题busuanzi计数手动初始化

      本文链接:https://www.haomeiwen.com/subject/cddhxrtx.html