Add string functions for use in templates

This commit is contained in:
Adnan Maolood 2021-05-10 13:11:10 -04:00
parent d7929490ed
commit f25f0125d3

View file

@ -99,19 +99,39 @@ func LoadConfig(path string) (*Config, error) {
}
var funcs = map[string]interface{}{
"path": func() _path { return _path{} },
"strings": func() _strings { return _strings{} },
"safeHTML": func(s string) htemplate.HTML { return htemplate.HTML(s) },
"safeHTMLAttr": func(s string) htemplate.HTMLAttr { return htemplate.HTMLAttr(s) },
"safeCSS": func(s string) htemplate.CSS { return htemplate.CSS(s) },
"safeJS": func(s string) htemplate.JS { return htemplate.JS(s) },
"safeURL": func(s string) htemplate.URL { return htemplate.URL(s) },
"path": func() pathFuncs { return pathFuncs{} },
}
type pathFuncs struct{}
type _path struct{}
func (pathFuncs) Base(s string) string { return path.Base(s) }
func (pathFuncs) Clean(s string) string { return path.Clean(s) }
func (pathFuncs) Dir(s string) string { return path.Dir(s) }
func (pathFuncs) Ext(s string) string { return path.Ext(s) }
func (pathFuncs) Join(elem ...string) string { return path.Join(elem...) }
func (pathFuncs) Split(s string) (string, string) { return path.Split(s) }
func (_path) Base(s string) string { return path.Base(s) }
func (_path) Clean(s string) string { return path.Clean(s) }
func (_path) Dir(s string) string { return path.Dir(s) }
func (_path) Ext(s string) string { return path.Ext(s) }
func (_path) Join(elem ...string) string { return path.Join(elem...) }
func (_path) Split(s string) (string, string) { return path.Split(s) }
type _strings struct{}
func (_strings) Count(a, b string) int { return strings.Count(a, b) }
func (_strings) HasPrefix(a, b string) bool { return strings.HasPrefix(a, b) }
func (_strings) HasSuffix(a, b string) bool { return strings.HasSuffix(a, b) }
func (_strings) Repeat(s string, i int) string { return strings.Repeat(s, i) }
func (_strings) Replace(a, b, c string, n int) string { return strings.Replace(a, b, c, n) }
func (_strings) ReplaceAll(a, b, c string) string { return strings.ReplaceAll(a, b, c) }
func (_strings) Split(a, b string) []string { return strings.Split(a, b) }
func (_strings) Title(s string) string { return strings.Title(s) }
func (_strings) ToLower(s string) string { return strings.ToLower(s) }
func (_strings) ToUpper(s string) string { return strings.ToUpper(s) }
func (_strings) Trim(a, b string) string { return strings.Trim(a, b) }
func (_strings) TrimLeft(a, b string) string { return strings.TrimLeft(a, b) }
func (_strings) TrimPrefix(a, b string) string { return strings.TrimPrefix(a, b) }
func (_strings) TrimRight(a, b string) string { return strings.TrimRight(a, b) }
func (_strings) TrimSpace(s string) string { return strings.TrimSpace(s) }
func (_strings) TrimSuffix(a, b string) string { return strings.TrimSuffix(a, b) }