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)