不蒜子是一款简单好用的网站访客数量统计插件。只需两行代码,就可搞定静态网站的计数难题。许多Hexo主题也都内置了这个功能。
不蒜子好虽好,但有一大问题就是如果你换了域名,那你的访客计数就归零了。而官网上写的注册后初始化的功能也是被作者一鸽再鸽。因此要初始化访客计数就只能另辟蹊径了。
总结了网上的方法无非就是在全局加上一段js,在不蒜子计数加载完成后在加上一个初始值。
对于我使用的 Icarus主题,有两种修改方法:
修改主题代码
方法一
我在main.js
中加上了如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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
的相关配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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
标签:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| // 加上这个 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
中加上:
1
| busuanzi_site_offset: 100
|
初始值改多少就看你了😉