feat(plugins): add Google Analytics plugin (#66)

This commit is contained in:
cinwell.li 2017-02-09 22:16:15 +08:00 committed by GitHub
parent 9605c18fff
commit ac61bb0e75
7 changed files with 96 additions and 4 deletions

View File

@ -1,3 +1,8 @@
## 2.2.0
### Features
- Add `Google Analytics` plugin.
## 2.1.0
### Features
- Add search plugin

View File

@ -76,13 +76,12 @@ These open-source projects are using docsify to generate their sites. Pull reque
## Development
### prepare
```bash
npm i && npm run dev
open http://localhost:3000
```
### More Language Highlight
## More Language Highlight
```html
<script src="//unpkg.com/docsify"></script>

View File

@ -47,3 +47,14 @@ isProd && build({
moduleName: 'D.Search',
plugins: [uglify()]
})
build({
entry: 'plugins/ga.js',
output: 'plugins/ga.js',
moduleName: 'D.GA'
})
isProd && build({
entry: 'plugins/ga.js',
output: 'plugins/ga.min.js',
moduleName: 'D.GA',
plugins: [uglify()]
})

View File

@ -468,7 +468,7 @@ If a document can have a search, can enhance some user experience. Installing th
```html
<script src="//unpkg.com/docsify/lib/docsify.js"></script>
<script src="//unpkg.com/docsify"></script>
<script src="//unpkg.com/docsify/lib/plugins/search.js"></script>
```
@ -495,3 +495,20 @@ window.$docsify = {
}
}
```
### Google Analytics
Install the plugin and configure the track id.
```html
<script src="//unpkg.com/docsify" data-ga="UA-XXXXX-Y"></script>
<script src="//unpkg.com/docsify/lib/plugins/ga.js"></script>
```
or
```js
window.$docsify = {
ga: 'UA-XXXXX-Y'
}
```

View File

@ -501,3 +501,20 @@ window.$docsify = {
}
}
```
### Google Analytics
安装插件并且配置 track id。
```html
<script src="//unpkg.com/docsify" data-ga="UA-XXXXX-Y"></script>
<script src="//unpkg.com/docsify/lib/plugins/ga.js"></script>
```
或者
```js
window.$docsify = {
ga: 'UA-XXXXX-Y'
}
```

View File

@ -15,7 +15,8 @@ const OPTIONS = utils.merge({
auto2top: false,
name: '',
themeColor: '',
nameLink: window.location.pathname
nameLink: window.location.pathname,
ga: ''
}, window.$docsify)
const script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop()

42
src/plugins/ga.js Normal file
View File

@ -0,0 +1,42 @@
// From https://github.com/egoist/vue-ga/blob/master/src/index.js
function appendScript () {
const script = document.createElement('script')
script.async = true
script.src = 'https://www.google-analytics.com/analytics.js'
document.body.appendChild(script)
}
function init (id) {
if (!window.ga) {
appendScript()
window.ga = window.ga || function () {
(window.ga.q = window.ga.q || []).push(arguments)
}
window.ga.l = Number(new Date())
window.ga('create', id, 'auto')
}
}
function collect () {
init(window.$docsify.ga)
window.ga('set', 'page', location.href)
window.ga('send', 'pageview')
}
const install = function () {
if (!window.Docsify || !window.Docsify.installed) {
console.error('[Docsify] Please load docsify.js first.')
return
}
if (!window.$docsify.ga) {
console.error('[Docsify] ga is required.')
return
}
collect()
window.$docsify.plugins = [].concat(window.$docsify.plugins, collect)
}
export default install()