diff --git a/docs/index.html b/docs/index.html index e07c79e9..6d0e008b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -44,6 +44,10 @@ maxLevel: 4, subMaxLevel: 2, ga: 'UA-106147152-1', + matomo: { + host: '//matomo.thunderwave.de', + id: 6 + }, name: 'docsify', search: { noData: { @@ -84,6 +88,7 @@ + diff --git a/src/plugins/matomo.js b/src/plugins/matomo.js new file mode 100644 index 00000000..7b61cba7 --- /dev/null +++ b/src/plugins/matomo.js @@ -0,0 +1,37 @@ +function appendScript(options) { + const script = document.createElement('script') + script.async = true + script.src = options.host + '/matomo.js' + document.body.appendChild(script) +} + +function init(options) { + window._paq = window._paq || [] + window._paq.push(['trackPageView']) + window._paq.push(['enableLinkTracking']) + setTimeout(function() { + appendScript(options) + window._paq.push(['setTrackerUrl', options.host + '/matomo.php']) + window._paq.push(['setSiteId', options.id + '']) + }, 0) +} + +function collect() { + if (!window._paq) { + init($docsify.matomo) + } + window._paq.push(['setCustomUrl', window.location.hash.substr(1)]) + window._paq.push(['setDocumentTitle', document.title]) + window._paq.push(['trackPageView']) +} + +const install = function (hook) { + if (!$docsify.matomo) { + console.error('[Docsify] matomo is required.') + return + } + + hook.beforeEach(collect) +} + +$docsify.plugins = [].concat(install, $docsify.plugins)