Selaa lähdekoodia

Added umami analitycs support (#938)

* feat: added umami analityc support

* chore: added support to on-premise deployment of umami service

* chore: renamed 'proto' to 'scheme' on umami integration
Augusto Pace 11 kuukautta sitten
vanhempi
commit
f3dacf112c
3 muutettua tiedostoa jossa 57 lisäystä ja 45 poistoa
  1. 1 0
      README.md
  2. 5 0
      exampleSite/hugo.yaml
  3. 51 45
      layouts/partials/analytics.html

+ 1 - 0
README.md

@@ -38,6 +38,7 @@ A [Hugo](https://gohugo.io/) theme for a personal portfolio with minimalist desi
   - counter.dev
   - Google Analytics
   - Matomo/Piwik
+  - [Umami](https://umami.is/)
 - Comment Support
   - [Disqus](https://disqus.com/)
   - [Valine](https://valine.js.org/)

+ 5 - 0
exampleSite/hugo.yaml

@@ -174,6 +174,11 @@ params:
         # matomo:
         #   instance: matomo.example.com
         #   siteId: 1 # Or any other number
+        # # Umami
+        # umami:
+        #   scheme: https
+        #   instance: umami.example.com
+        #   id: <your umami site id>
 
     # Enable Support
     support:

+ 51 - 45
layouts/partials/analytics.html

@@ -2,55 +2,61 @@
 {{ with site.Params.features.analytics }}
     {{ if or .enable .enabled }}
         {{ with .services }}
-        <!-- Google Analytics -->
-        {{ with .google }}
-            {{ $privacyConfig:= dict (slice "Site" "Config" "Privacy" "GoogleAnalytics") $.Site.Config.Privacy.GoogleAnalytics }}
-            {{ $analyticsConfig := dict (slice "Site" "Config" "Services" "GoogleAnalytics" "ID") .id }}
-            {{ template "_internal/google_analytics.html" (merge $privacyConfig $analyticsConfig) }}
-        {{ end }}
+            <!-- Google Analytics -->
+            {{ with .google }}
+                {{ $privacyConfig:= dict (slice "Site" "Config" "Privacy" "GoogleAnalytics") $.Site.Config.Privacy.GoogleAnalytics }}
+                {{ $analyticsConfig := dict (slice "Site" "Config" "Services" "GoogleAnalytics" "ID") .id }}
+                {{ template "_internal/google_analytics.html" (merge $privacyConfig $analyticsConfig) }}
+            {{ end }}
 
-        <!-- Counter.dev -->
-        {{ with .counterDev }}
-            <script src="https://cdn.counter.dev/script.js"
-                data-id="{{ .id }}"
-                data-utcoffset="1"
-            ></script>
-        {{ end }}
+            <!-- Counter.dev -->
+            {{ with .counterDev }}
+                <script src="https://cdn.counter.dev/script.js"
+                    data-id="{{ .id }}"
+                    data-utcoffset="1"
+                ></script>
+            {{ end }}
 
-        <!-- GoatCounter -->
-	{{ with .goatCounter }}
-		{{ with .code }}
-			<script data-goatcounter="https://{{ . }}.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
-    		{{ else }}
-     			<script data-goatcounter="https://{{ .instance }}/count" async src="https://{{ .instance }}/count.js"></script>
-		{{ end }}
-        {{ end }}
+            <!-- GoatCounter -->
+            {{ with .goatCounter }}
+                {{ with .code }}
+                    <script data-goatcounter="https://{{ . }}.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
+                    {{ else }}
+                        <script data-goatcounter="https://{{ .instance }}/count" async src="https://{{ .instance }}/count.js"></script>
+                {{ end }}
+            {{ end }}
 
-        <!-- Piwik/Matomo -->
-        {{ with .matomo }}
-        <!-- Matomo -->
-            <script>
-            var _paq = window._paq = window._paq || [];
-            /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-            _paq.push(['trackPageView']);
-            _paq.push(['enableLinkTracking']);
-            (function() {
-                var u="//{{ .instance }}/";
-                _paq.push(['setTrackerUrl', u+'matomo.php']);
-                _paq.push(['setSiteId', '{{ .siteId }}']);
-                var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-                g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-            })();
-            </script>
-        {{ end }}
+            <!-- Piwik/Matomo -->
+            {{ with .matomo }}
+            <!-- Matomo -->
+                <script>
+                var _paq = window._paq = window._paq || [];
+                /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+                _paq.push(['trackPageView']);
+                _paq.push(['enableLinkTracking']);
+                (function() {
+                    var u="//{{ .instance }}/";
+                    _paq.push(['setTrackerUrl', u+'matomo.php']);
+                    _paq.push(['setSiteId', '{{ .siteId }}']);
+                    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+                    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+                })();
+                </script>
+            {{ end }}
 
-        {{ with .cloudflare }}
-            <!-- Cloudflare Web Analytics -->
-            <script defer src='https://static.cloudflareinsights.com/beacon.min.js'
-                data-cf-beacon='{"token": "{{ .token }}"}'
-            ></script>
-            <!-- End Cloudflare Web Analytics -->
-        {{ end }}
+            {{ with .cloudflare }}
+                <!-- Cloudflare Web Analytics -->
+                <script defer src='https://static.cloudflareinsights.com/beacon.min.js'
+                    data-cf-beacon='{"token": "{{ .token }}"}'
+                ></script>
+                <!-- End Cloudflare Web Analytics -->
+            {{ end }}
+
+            {{ with .umami }}
+            <!-- Umami analytics -->
+            <script defer src='{{ or .scheme "https" }}://{{ or .instance "analytics.eu.umami.is" }}/script.js' data-website-id="{{ .id }}"></script>
+            <!-- End Umami analytics -->
+            {{end}}
         {{ end }}
     {{ end }}
 {{ end }}