diff --git a/.goreleaser.yml b/.goreleaser.yml index c89e189..68d1f62 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -47,7 +47,7 @@ archives: {{- if eq .Arch "amd64" }}x86_64{{- else if eq .Arch "arm64" }}aarch64{{- else }}{{ .Arch }}{{ end }}_{{ .Version }} format_overrides: - goos: windows - formats: ['zip'] + format: zip dockers: - image_templates: diff --git a/internal/admin/admin.go b/internal/admin/admin.go index d590995..715c5e1 100644 --- a/internal/admin/admin.go +++ b/internal/admin/admin.go @@ -1,9 +1,9 @@ package admin import ( - "embed" "html/template" "net/http" + "path/filepath" "strconv" "strings" @@ -14,12 +14,12 @@ import ( "github.com/gorilla/sessions" ) -//go:embed templates/*.html -var templateFS embed.FS - const ( // Session store key sessionKey = "butterrobot-session" + + // Template directory + templateDir = "./internal/admin/templates" ) // FlashMessage represents a flash message @@ -63,17 +63,9 @@ func New(cfg *config.Config, database *db.Database) *Admin { "contains": strings.Contains, } - // Read base template from embedded filesystem - baseContent, err := templateFS.ReadFile("templates/_base.html") - if err != nil { - panic(err) - } - // Create a custom template with functions - baseTemplate, err := template.New("_base.html").Funcs(funcMap).Parse(string(baseContent)) - if err != nil { - panic(err) - } + baseTemplate := template.New("_base.html").Funcs(funcMap) + baseTemplate = template.Must(baseTemplate.ParseFiles(filepath.Join(templateDir, "_base.html"))) // Parse and register all templates templateFiles := []string{ @@ -86,24 +78,11 @@ func New(cfg *config.Config, database *db.Database) *Admin { } for _, tf := range templateFiles { - // Read template content from embedded filesystem - content, err := templateFS.ReadFile("templates/" + tf) - if err != nil { - panic(err) - } - // Create a clone of the base template - t, err := baseTemplate.Clone() + t, err := template.Must(baseTemplate.Clone()).ParseFiles(filepath.Join(templateDir, tf)) if err != nil { panic(err) } - - // Parse the template content - t, err = t.Parse(string(content)) - if err != nil { - panic(err) - } - templates[tf] = t }