35 lines
729 B
Go
35 lines
729 B
Go
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
|
|
}
|