Hexo折腾系列——不蒜子计数器初始化

不蒜子是一款简单好用的网站访客数量统计插件。只需两行代码,就可搞定静态网站的计数难题。许多Hexo主题也都内置了这个功能。

不蒜子好虽好,但有一大问题就是如果你换了域名,那你的访客计数就归零了。而官网上写的注册后初始化的功能也是被作者一鸽再鸽。因此要初始化访客计数就只能另辟蹊径了。

总结了网上的方法无非就是在全局加上一段js,在不蒜子计数加载完成后在加上一个初始值。

对于我使用的 Icarus主题,有两种修改方法:

修改主题代码

方法一

我在main.js中加上了如下代码:

var config = window.IcarusThemeSettings;
if (typeof config !== 'undefined'
    && typeof config.busuanzi_site_offset !== 'undefined' && config.busuanzi == true) {
    $(document).ready(function () {
        var int = setInterval(fixCount, 100);
        var busuanziSiteOffset = parseInt(config.busuanzi_site_offset);
        function fixCount() {
            if ($("#busuanzi_container_site_uv").css("display") != "none" && parseInt($("#busuanzi_value_site_uv").html()) > 0) {
                clearInterval(int);
                $("#busuanzi_value_site_uv").html(parseInt($("#busuanzi_value_site_uv").html()) + busuanziSiteOffset);
            }
        }
    });
}

同时修改script.jsx,在导出的配置中加上busuanzi的相关配置

    const embeddedConfig = `var IcarusThemeSettings = {
        site: {
            url: '${config.url}',
            external_link: ${JSON.stringify(externalLink)}
        },
        article: {
            highlight: {
                clipboard: ${clipboard},
                fold: '${fold}'
            }
        },
+       busuanzi: ${config.plugins.busuanzi},
+       busuanzi_site_offset: ${config.busuanzi_site_offset},
    };`;

方法二

只修改script.jsx,通过dangerouslySetInnerHTML的方式加入script标签:

        // 加上这个
		const busuanzi_init = `if (typeof ${config.busuanzi_site_offset} !== 'undefined' 
        && ${config.plugins.busuanzi} == true) {
        $(document).ready(function () {
            var int = setInterval(fixCount, 100);
            var busuanziSiteOffset = parseInt(${config.busuanzi_site_offset});
            function fixCount() {
                if ($("#busuanzi_container_site_uv").css("display") != "none" && parseInt($("#busuanzi_value_site_uv").html()) > 0) {
                    clearInterval(int);
                    $("#busuanzi_value_site_uv").html(parseInt($("#busuanzi_value_site_uv").html()) + busuanziSiteOffset);
                }
            }
        });
    }`;
        return <Fragment>
            <script src={cdn('jquery', '3.3.1', 'dist/jquery.min.js')}></script>
            <script src={cdn('moment', '2.22.2', 'min/moment-with-locales.min.js')}></script>
            <script dangerouslySetInnerHTML={{ __html: `moment.locale("${language}");` }}></script>
            <script dangerouslySetInnerHTML={{ __html: embeddedConfig }}></script>
            {/* 加上这句 */}
            <script dangerouslySetInnerHTML={{ __html: busuanzi_init }}></script>
            {clipboard ? <script src={cdn('clipboard', '2.0.4', 'dist/clipboard.min.js')} defer={true}></script> : null}
            <Plugins site={site} config={config} page={page} helper={helper} head={false} />
            <script src={url_for('/js/main.js')} defer={true}></script>
        </Fragment>;
    }

添加配置文件

使用上述任一种方法修改后,只需要在主题的配置文件_config.yml中加上:

busuanzi_site_offset: 100

初始值改多少就看你了😉

原博客地址:https://blog.luzy.top/posts/3966480924/

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值