about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--config.toml2
-rw-r--r--internal/config/config.go1
-rw-r--r--templates/page.templ15
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>
 }