diff --git a/app.go b/app.go index 8ff4378..417e67d 100644 --- a/app.go +++ b/app.go @@ -1,6 +1,10 @@ package main import ( + "io/fs" + "path/filepath" + "strings" + "github.com/gofiber/fiber/v2" "github.com/gofiber/template/html/v2" ) @@ -21,5 +25,32 @@ func main() { func setupTemplates() *html.Engine { engine := html.New("./views", ".html") + + // TODO: enable only on DEV=true in env vars + engine.Reload(true) + + assets := make(map[string]string) + filepath.WalkDir("./public/assets", func(path string, d fs.DirEntry, err error) error { + if !d.IsDir() { + name := d.Name() + parts := strings.Split(name, ".") + + var key string + if len(parts) < 2 { + key = name + } else { + key = parts[0] + "." + parts[len(parts)-1] + } + + assets[key] = path + } + return nil + }) + engine.AddFunc("GetAsset", func(key string) string { + return assets[key] + }) + + // TODO: i18n + return engine }