feat(plugins): add Google Analytics plugin (#66)
This commit is contained in:
parent
9605c18fff
commit
ac61bb0e75
7 changed files with 96 additions and 4 deletions
|
|
@ -1,3 +1,8 @@
|
||||||
|
## 2.2.0
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Add `Google Analytics` plugin.
|
||||||
|
|
||||||
## 2.1.0
|
## 2.1.0
|
||||||
### Features
|
### Features
|
||||||
- Add search plugin
|
- Add search plugin
|
||||||
|
|
|
||||||
|
|
@ -76,13 +76,12 @@ These open-source projects are using docsify to generate their sites. Pull reque
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
### prepare
|
|
||||||
```bash
|
```bash
|
||||||
npm i && npm run dev
|
npm i && npm run dev
|
||||||
open http://localhost:3000
|
open http://localhost:3000
|
||||||
```
|
```
|
||||||
|
|
||||||
### More Language Highlight
|
## More Language Highlight
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="//unpkg.com/docsify"></script>
|
<script src="//unpkg.com/docsify"></script>
|
||||||
|
|
|
||||||
|
|
@ -47,3 +47,14 @@ isProd && build({
|
||||||
moduleName: 'D.Search',
|
moduleName: 'D.Search',
|
||||||
plugins: [uglify()]
|
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()]
|
||||||
|
})
|
||||||
|
|
|
||||||
|
|
@ -468,7 +468,7 @@ If a document can have a search, can enhance some user experience. Installing th
|
||||||
|
|
||||||
|
|
||||||
```html
|
```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>
|
<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'
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ const OPTIONS = utils.merge({
|
||||||
auto2top: false,
|
auto2top: false,
|
||||||
name: '',
|
name: '',
|
||||||
themeColor: '',
|
themeColor: '',
|
||||||
nameLink: window.location.pathname
|
nameLink: window.location.pathname,
|
||||||
|
ga: ''
|
||||||
}, window.$docsify)
|
}, window.$docsify)
|
||||||
const script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop()
|
const script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop()
|
||||||
|
|
||||||
|
|
|
||||||
42
src/plugins/ga.js
Normal file
42
src/plugins/ga.js
Normal 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()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue