Hexo其他主题添加leancloud来支持 Hexo统计post阅读次数
ChrisXie Lv5

添加流程

当前Hexo主题是从TKL克隆下来的没有像next主题那样支持leancloud访问量统计,参照了很多网上资料常规设置后都不成功。因为当时也添加了hexo valine 评论一直以为都是自己配置问题,最后实在没办法就改变了配置方式来实现,刚好写一个流程好记录下来。

创建应用

登录leancloud账号或者注册一个账号(需要实验证)
创建一个开发版的应用


添加Counter数据存储表

存储>结构化数据>创建Class (选择默认即可)


设置web安全域名

设置>安全中心>web安全域名服务开关只留下数据存储


输入博客地址


leancloud统计基本设置完成

Hexo项目配置

1,需要设置一下hexo主题的_config.yml,目录:/blog/themes/BLOG/_config.yml
由于之前有配置valine留言板,只需要添加或者修改visitor: true

1
2
3
4
5
6
7
8
9
10
11
12
13
valine:
enable: true # 设置为true开启
appid: xxxxx # 填写leancloud应用的appid
appkey: xxxxx # 填写leancloud应用的appkey
notify: true # 开启新留言邮件通知
verify: false # 不开启验证
placeholder: 留下你的爪印吧~ # 留言框里的文字
avatar: wavatar # 头像
guest_info: nick,mail # 留言框需要的访客信息输入
pageSize: 10 # 单页留言条数
language: zh-cn # language, available values: en, zh-cn
visitor: true # 访客记录我已经在配置中开启过了,这里设false
avatar_cdn: https://www.gravatar.com/avatar/ #头像cdn 如果国内显示不出来用 avatar_cdn: https://cdn.v2ex.com/gravatar/ #头像cdn替换

没有添加留言板的执行配置下方即可

1
2
3
4
leancloud_visitors:
enable: true
app_id: xxxxx
app_key: xxxxx

2,按照上方设置只需要填入leancloud对应的app_id和app_key即可


3,在/blog/themes/BLOG/layout/_partial/post.ejs文件添加下方代码

1
阅读数量:<span id="<%= url_for(post.path) %>" class="leancloud_visitors" data-flag-title="<%- post.title %>"></span>次

4,以上操作在其他主题已经完成了添加统计了,但是当前博客主题需要添加一段代码来支持统计
目录:/blog/themes/BLOG/layout/_partial/footer.ejs里添加如下代码
*如果在设置留言板的时候有添加就可以不用再添加av-main.js了

1
<script src="//cdn1.lncld.net/static/js/2.5.0/av-min.js"></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
27
28
29
30
31
32
33
34
35
36
37
38
39
<script>
var APP_ID = 'xxxxx';
var APP_KEY = 'xxxxx';
AV.init({
appId: APP_ID,
appKey: APP_KEY
});
// 显示次数
function showTime(Counter) {
var query = new AV.Query("Counter");
if($(".leancloud_visitors").length > 0){
var url = $(".leancloud_visitors").attr('id').trim();
// where field
query.equalTo("words", url);
// count
query.count().then(function (number) {
// There are number instances of MyClass where words equals url.
$(document.getElementById(url)).text(number? number : '--');
}, function (error) {
// error is an instance of AVError.
});
}
}
// 追加pv
function addCount(Counter) {
var url = $(".leancloud_visitors").length > 0 ? $(".leancloud_visitors").attr('id').trim() : 'icafebolger.com';
var Counter = AV.Object.extend("Counter");
var query = new Counter;
query.save({
words: url
}).then(function (object) {
})
}
$(function () {
var Counter = AV.Object.extend("Counter");
addCount(Counter);
showTime(Counter);
});
</script>

好啦,已经完成设置了重启一下hexo看看是不是已经有统计访问量了

 评论
相关文章
标签云 更多