summaryrefslogtreecommitdiffstats
path: root/internal/admin/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/admin/server.go')
-rw-r--r--internal/admin/server.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/internal/admin/server.go b/internal/admin/server.go
index 33413ee..b36c598 100644
--- a/internal/admin/server.go
+++ b/internal/admin/server.go
@@ -4,6 +4,7 @@
package admin
import (
+ "embed"
"fmt"
"html/template"
"net/http"
@@ -19,6 +20,9 @@ import (
"nebbet.no/internal/builder"
)
+//go:embed templates/*.html
+var adminTemplates embed.FS
+
// Server is an http.Handler that serves the admin post-management UI.
type Server struct {
// PostsDir is the directory where post markdown files are stored,
@@ -353,7 +357,7 @@ func slugify(title string) string {
return s
}
-// mustParseTemplates loads admin templates from the templates/admin/ directory.
+// mustParseTemplates loads admin templates from the embedded filesystem.
func mustParseTemplates() *template.Template {
funcs := template.FuncMap{
"splitTags": func(s string) []string {
@@ -367,8 +371,8 @@ func mustParseTemplates() *template.Template {
return tags
},
}
- // Load all .html files from templates/admin/ directory
- tmpl, err := template.New("admin").Funcs(funcs).ParseGlob("templates/admin/*.html")
+ // Parse templates from embedded filesystem
+ tmpl, err := template.New("admin").Funcs(funcs).ParseFS(adminTemplates, "templates/*.html")
if err != nil {
panic(fmt.Sprintf("failed to parse admin templates: %v", err))
}