From 7040dc5eed88b498cee1d00b565a3366868152ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 4 Nov 2025 18:34:19 +0100 Subject: [PATCH] Move to minimalanalytics for GA tracking --- .gitignore | 2 ++ assets/js/main.js | 3 +++ assets/jsconfig.json | 10 -------- go.mod | 5 ++++ go.sum | 6 +++-- hugo.toml | 11 +++++--- layouts/_partials/helpers/gtag.html | 27 -------------------- layouts/_partials/layouts/head/head-js.html | 3 +++ layouts/_partials/layouts/head/head.html | 3 --- layouts/_partials/layouts/home/sponsors.html | 4 --- 10 files changed, 24 insertions(+), 50 deletions(-) delete mode 100644 assets/jsconfig.json delete mode 100644 layouts/_partials/helpers/gtag.html diff --git a/.gitignore b/.gitignore index 5208c5c3a..8ab22c224 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ node_modules/ nohup.out package-lock.json trace.out +assets/jsconfig.json + diff --git a/assets/js/main.js b/assets/js/main.js index c12be19fa..d968de0d9 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -47,6 +47,9 @@ var debug = 0 ? console.log.bind(console, '[index]') : function () {}; bridgeTurboAndAlpine(Alpine); { + // Minimal Analytics does not support SPA out of the box, so we need to manually track page views on Turbo navigation. + addEventListener('turbo:visit', () => window.track('page_view')); + let containerScrollTops = {}; // To preserve scroll position in scrolling elements on navigation add data-turbo-preserve-scroll-container="somename" to the scrolling container. diff --git a/assets/jsconfig.json b/assets/jsconfig.json deleted file mode 100644 index 377218ccb..000000000 --- a/assets/jsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "*": [ - "*" - ] - } - } -} \ No newline at end of file diff --git a/go.mod b/go.mod index 4b9e0a369..fa2ea19f8 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,8 @@ module github.com/gohugoio/hugoDocs go 1.22.0 + +require ( + github.com/bep/hugo-mod-minimalanalytics v0.3.0 // indirect + github.com/jahilldev/minimal-analytics v0.0.0-20220825110705-ee335ed38334 // indirect +) diff --git a/go.sum b/go.sum index af9b5febf..f753f06a0 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,4 @@ -github.com/gohugoio/gohugoioTheme v0.0.0-20250116152525-2d382cae7743 h1:gjoqq8+RnGwpuU/LQVYGGR/LsDplrfUjOabWwoROYsM= -github.com/gohugoio/gohugoioTheme v0.0.0-20250116152525-2d382cae7743/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM= +github.com/bep/hugo-mod-minimalanalytics v0.3.0 h1:fctZN3nFOFrapX1dhPBszyCUKOGjEpBJmp1jBf3YkJE= +github.com/bep/hugo-mod-minimalanalytics v0.3.0/go.mod h1:3QVkKqSikBRTI+hS3dm/zCAfGukd+opSfAwfjkyxqIw= +github.com/jahilldev/minimal-analytics v0.0.0-20220825110705-ee335ed38334 h1:r8/jLqGw5uwSmgJ4eSGbxa1XBaSIkp3MY99GhY61NeE= +github.com/jahilldev/minimal-analytics v0.0.0-20220825110705-ee335ed38334/go.mod h1:w4l2fXZWGxmcVQfLLBdTqUT6HpSIA9FhmUtVArJFLYw= diff --git a/hugo.toml b/hugo.toml index 5e0b697ef..3cd51c4e8 100644 --- a/hugo.toml +++ b/hugo.toml @@ -98,6 +98,8 @@ ignoreLogs = ['warning-frontmatter-params-overrides'] disableWatch = true source = "hugo_stats.json" target = "assets/notwatching/hugo_stats.json" + [[module.imports]] + path = "github.com/bep/hugo-mod-minimalanalytics" [outputFormats] [outputFormats.redir] @@ -120,6 +122,11 @@ ignoreLogs = ['warning-frontmatter-params-overrides'] [params] description = "The world’s fastest framework for building websites" ghrepo = "https://github.com/gohugoio/hugoDocs/" + + [params.minimalanalytics] + # GA4 tracking ID + tracking_id = "G-MBZGKNMDWC" + [params.render_hooks.link] errorLevel = 'warning' # ignore (default), warning, or error (fails the build) [params.social.mastodon] @@ -148,10 +155,6 @@ ignoreLogs = ['warning-frontmatter-params-overrides'] [[server.headers]] for = "/**.{css,js}" -[services] - [services.googleAnalytics] - ID = 'G-MBZGKNMDWC' - [taxonomies] category = 'categories' diff --git a/layouts/_partials/helpers/gtag.html b/layouts/_partials/helpers/gtag.html deleted file mode 100644 index 59bf36ba2..000000000 --- a/layouts/_partials/helpers/gtag.html +++ /dev/null @@ -1,27 +0,0 @@ -{{ with site.Config.Services.GoogleAnalytics.ID }} - - -{{ end }} diff --git a/layouts/_partials/layouts/head/head-js.html b/layouts/_partials/layouts/head/head-js.html index d83efcd0f..e24c10ce8 100644 --- a/layouts/_partials/layouts/head/head-js.html +++ b/layouts/_partials/layouts/head/head-js.html @@ -1,3 +1,6 @@ +{{ if or hugo.IsProduction (not hugo.IsDevelopment) }} + {{ partial "minimalanalytics.html" . }} +{{ end }} {{ $githubInfo := partialCached "helpers/funcs/get-github-info.html" . "-" }} {{ $opts := dict "minify" true }} {{ with resources.Get "js/head-early.js" | js.Build $opts }} diff --git a/layouts/_partials/layouts/head/head.html b/layouts/_partials/layouts/head/head.html index 265d7ccd0..7014e2c29 100644 --- a/layouts/_partials/layouts/head/head.html +++ b/layouts/_partials/layouts/head/head.html @@ -36,6 +36,3 @@ {{ partial "schema.html" . }} {{ partial "twitter_cards.html" . }} -{{ if hugo.IsProduction }} - {{ partial "helpers/gtag.html" . }} -{{ end }} diff --git a/layouts/_partials/layouts/home/sponsors.html b/layouts/_partials/layouts/home/sponsors.html index 1f391e1ec..5832e9770 100644 --- a/layouts/_partials/layouts/home/sponsors.html +++ b/layouts/_partials/layouts/home/sponsors.html @@ -15,13 +15,9 @@ {{ $url = printf "%s?%s%s" .link $query_params (querify "utm_source" (.utm_source | default $utmSource ) "utm_medium" (.utm_medium | default "banner") "utm_campaign" (.utm_campaign | default "hugosponsor") "utm_content" (.utm_content | default "gohugoio")) | safeURL }} {{ end }} {{ $logo := resources.Get .logo }} - {{ $gtagID := printf "Sponsor %s %s" .name $gtag | title }}