diff options
-rw-r--r-- | config.toml | 2 | ||||
-rw-r--r-- | internal/config/config.go | 1 | ||||
-rw-r--r-- | templates/page.templ | 15 |
3 files changed, 8 insertions, 10 deletions
diff --git a/config.toml b/config.toml index db9bab6..40efd77 100644 --- a/config.toml +++ b/config.toml @@ -19,6 +19,8 @@ domains = [ oidc_host = "https://id.alanpearce.eu/" +goatcounter = "https://alanpearce-eu.goatcounter.com/count" + [[taxonomies]] name = "tags" feed = true diff --git a/internal/config/config.go b/internal/config/config.go index 7d43462..b429333 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -38,6 +38,7 @@ type Config struct { Description string DomainStartDate string `toml:"domain_start_date"` OriginalDomain string `toml:"original_domain"` + GoatCounter URL `toml:"goatcounter"` Domains []string OIDCHost URL `toml:"oidc_host"` Taxonomies []Taxonomy diff --git a/templates/page.templ b/templates/page.templ index 1dbd345..7a43485 100644 --- a/templates/page.templ +++ b/templates/page.templ @@ -2,7 +2,6 @@ package templates import ( "io/fs" - "net/url" "website/internal/config" ) @@ -74,7 +73,7 @@ templ Page(site *config.Config, page PageSettings) { <a href="https://git.alanpearce.eu/website/">Site source code</a> is <a href="https://opensource.org/licenses/MIT">MIT</a> </footer> - @counter(page.Path, page.Title) + @counter(site, page.Path, page.Title) if site.InjectLiveReload { <script defer> new EventSource("/_/reload").onmessage = event => { @@ -87,11 +86,7 @@ templ Page(site *config.Config, page PageSettings) { </html> } -func mkURL(path string, title string) string { - u, err := url.Parse("https://alanpearce-eu.goatcounter.com/count") - if err != nil { - panic(err) - } +func mkURL(u config.URL, path string, title string) string { q := u.Query() q.Add("p", path) q.Add("t", title) @@ -100,10 +95,10 @@ func mkURL(path string, title string) string { return u.String() } -templ counter(path string, title string) { - <script data-goatcounter="https://alanpearce-eu.goatcounter.com/count" async src="https://gc.zgo.at/count.v4.js" crossorigin="anonymous" integrity="sha384-nRw6qfbWyJha9LhsOtSb2YJDyZdKvvCFh0fJYlkquSFjUxp9FVNugbfy8q1jdxI+"></script> +templ counter(config *config.Config, path string, title string) { + <script data-goatcounter={ config.GoatCounter.String() } async src="https://gc.zgo.at/count.v4.js" crossorigin="anonymous" integrity="sha384-nRw6qfbWyJha9LhsOtSb2YJDyZdKvvCFh0fJYlkquSFjUxp9FVNugbfy8q1jdxI+"></script> <noscript> - <img src={ string(templ.URL(mkURL(path, title))) }/> + <img src={ string(templ.URL(mkURL(config.GoatCounter, path, title))) }/> </noscript> } |