背景
之前将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
创建账号即可生成,就不详述了。