diff options
Diffstat (limited to 'internal/generator/shared.go')
| -rw-r--r-- | internal/generator/shared.go | 23 |
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 } |
