package router
import (
"html/template"
"io/fs"
"path/filepath"
"strings"
webtpl "videoweb/app/template"
)
func mustHTMLTemplate(funcMap template.FuncMap) *template.Template {
tmpl := template.New("").Funcs(funcMap)
err := fs.WalkDir(webtpl.FS, ".", func(path string, d fs.DirEntry, err error) error {
if err != nil || d.IsDir() {
return err
}
if !strings.HasSuffix(strings.ToLower(d.Name()), ".html") {
return nil
}
body, err := webtpl.FS.ReadFile(path)
if err != nil {
return err
}
_, err = tmpl.New(filepath.Base(path)).Parse(string(body))
return err
})
if err != nil {
panic(err)
}
if tmpl.Lookup("index.html") == nil {
panic("embedded html templates are empty")
}
return tmpl
}