summaryrefslogtreecommitdiff
path: root/internal/generator/shared.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-27 08:40:32 +0300
committerPaul Buetow <paul@buetow.org>2026-04-27 08:40:32 +0300
commitad0cc92e16aa98ee10bead846c0ff4c74c5244d6 (patch)
treec405475e9744d0568b6ab3be96ba38021c731771 /internal/generator/shared.go
parent9ce439a217a8f2f5c48317bb5fb37e65d2f11ede (diff)
generator: lazy-init themeSet and navDefs with sync.Once
Diffstat (limited to 'internal/generator/shared.go')
-rw-r--r--internal/generator/shared.go23
1 files changed, 15 insertions, 8 deletions
diff --git a/internal/generator/shared.go b/internal/generator/shared.go
index d0badb8..378a01f 100644
--- a/internal/generator/shared.go
+++ b/internal/generator/shared.go
@@ -2,6 +2,7 @@ package generator
import (
"log"
+ "sync"
"codeberg.org/snonux/snonux/internal/generator/templates"
)
@@ -18,13 +19,19 @@ import (
// Each theme ends its <style> with {{template "navSharedCSSInner"}} then calls
// {{template "splashGate"}}, {{template "navhints" .}}, {{template "navmodal" .}},
// and {{template "navscript" .}} at the appropriate points in its HTML.
-var navDefs = loadNavDefs()
+var (
+ navDefsCache string
+ navDefsOnce sync.Once
+)
-func loadNavDefs() string {
- s, err := templates.Shared("nav")
- if err != nil {
- log.Printf("warning: could not load shared nav template: %v", err)
- return ""
- }
- return s
+func getNavDefs() string {
+ navDefsOnce.Do(func() {
+ s, err := templates.Shared("nav")
+ if err != nil {
+ log.Printf("warning: could not load shared nav template: %v", err)
+ return
+ }
+ navDefsCache = s
+ })
+ return navDefsCache
}