]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
config/privacy: Change GoogleAnalytics.RespectDoNotTrack default to true
authorJoe Mooring <joe.mooring@veriphor.com>
Mon, 28 Apr 2025 18:40:06 +0000 (11:40 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 27 Nov 2025 08:46:53 +0000 (09:46 +0100)
Closes #13307

config/privacy/privacyConfig.go
tpl/tplimpl/tplimpl_integration_test.go

index e837cedab35e9c168fcaebde34ca2dc9b5644a86..b707206623d00e092149c3d5a7e584d075f95cb8 100644 (file)
@@ -112,12 +112,8 @@ type X struct {
 
 // DecodeConfig creates a privacy Config from a given Hugo configuration.
 func DecodeConfig(cfg config.Provider) (pc Config, err error) {
-       if !cfg.IsSet(privacyConfigKey) {
-               return
-       }
-
+       pc.GoogleAnalytics.RespectDoNotTrack = true
        m := cfg.GetStringMap(privacyConfigKey)
-
        err = mapstructure.WeakDecode(m, &pc)
 
        return
index b628989237aa1dcbf5c50071596e97db0149e37e..3fb917a70e3e6201b91864c8532569491a70ee91 100644 (file)
@@ -195,18 +195,35 @@ func TestGoogleAnalyticsTemplate(t *testing.T) {
 disableKinds = ['page','section','rss','sitemap','taxonomy','term']
 [privacy.googleAnalytics]
 disable = false
-respectDoNotTrack = true
+DNT
 [services.googleAnalytics]
 id = 'G-0123456789'
--- layouts/index.html --
-{{ template "_internal/google_analytics.html" . }}
+-- layouts/home.html --
+{{ partial "google_analytics.html" . }}
 `
 
-       b := hugolib.Test(t, files)
+       // default respectDoNotTrack value
+       f := strings.ReplaceAll(files, "DNT", "")
+       b := hugolib.Test(t, f)
+       b.AssertFileContent("public/index.html",
+               `<script async src="https://www.googletagmanager.com/gtag/js?id=G-0123456789"></script>`,
+               `if ( true )`,
+       )
+
+       // respectDoNotTrack = true
+       f = strings.ReplaceAll(files, "DNT", "respectDoNotTrack = true")
+       b = hugolib.Test(t, f)
+       b.AssertFileContent("public/index.html",
+               `<script async src="https://www.googletagmanager.com/gtag/js?id=G-0123456789"></script>`,
+               `if ( true )`,
+       )
 
+       // respectDoNotTrack = false
+       f = strings.ReplaceAll(files, "DNT", "respectDoNotTrack = false")
+       b = hugolib.Test(t, f)
        b.AssertFileContent("public/index.html",
                `<script async src="https://www.googletagmanager.com/gtag/js?id=G-0123456789"></script>`,
-               `var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);`,
+               `if ( false )`,
        )
 }