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) }