package v
import (
"html/template"
"strings"
"git.sr.ht/~evanj/cms/internal/m/tier"
"git.sr.ht/~evanj/cms/internal/m/user"
)
//go:generate embed -pattern */* -id tmpls
var all *template.Template
func MustParse(name string) *template.Template {
if all == nil {
fns := template.FuncMap{
"inc": func(i int) int { return i + 1 },
"title": func(str string) string { return strings.Title(str) },
"paid": func(u user.User) bool {
if u == nil {
return false
}
return u.Org().Tier().Is(tier.Business) || u.Org().Tier().Is(tier.Enterprise)
},
"isFree": func(t tier.Tier) bool { return t.Is(tier.Free) },
}
all = template.New("cms")
for key, val := range tmpls {
all = template.Must(all.New(key).Funcs(fns).Parse(val))
}
}
return all.Lookup(name)
}