背景
之前将hexo集成了gitbook,由于hexo的阅读量使用的是leancloud,而gitbook用的是gitbook-plugin-pageview-count的一个插件。
找了一圈也没找到leancloud相关的gitbook插件,想了想,干脆自己写一个算了。虽然基本没写过js,但依葫芦画瓢应该还是可以的。
gitbook 插件
先看看原生的gitbook插件gitbook-plugin-pageview-count:
1 | ➜ gitbook-plugin-pageview-count git:(master) ✗ tree -L 2 |
plugin.css主要是显示的样式,先不用管。plugin.js就是主要的统计阅读量的内容了。
plugin.js
1 | var gitbook = window.gitbook; |
统计阅读量靠requustCount函数完成,通过renderWrapper.find('.page-view-counter').html(data)将阅读量传递给.page-view-counter的变量。
所以将leancloud统计阅读量的结果通过renderWrapper.find('.page-view-counter').html(data)返回就行。
leanlcoud
plugin.js
改造后的plugin.js如下:
1 | var gitbook = window.gitbook; |
配置
因为leancloud的接口需要提供其app_id和app_key,所以需要将其写在gitbook的book.json文件中
1 | { |
然后在我们的plugin.js中,通过
1 | gitbook.events.bind("start", function(e, config) { |
将配置读取出来。
counter
通过app_id和app_key生成leancloud的接口
1 | var Counter = function (method, url, data) { |
统计
最后通过Counter接口进行统计
1 | var url = location.href.replace(/^http:\/\/[^/]+/, "").trim(); |
到这里基本就完成了。
使用
新生成的package包已上传到npm,可食用。npm地址:https://www.npmjs.com/package/gitbook-plugin-leancloud-pageviewgithub地址: https://github.com/TiannV/gitbook-plugin-leancloud-pageview
gitbook使用方法,在book.json文件中添加插件即可。
1 | { |
app_id和app_key自己去leancloud创建账号即可生成,就不详述了。