65 lines
966 B
Go
65 lines
966 B
Go
package sprigx
|
|
|
|
import (
|
|
htpl "html/template"
|
|
ttpl "text/template"
|
|
)
|
|
|
|
/*
|
|
Many of these functions are modeled after sprig's.
|
|
*/
|
|
|
|
/*
|
|
FuncMap returns a generic function map.
|
|
|
|
You probably want [HtmlFuncMap] or [TxtFuncMap] instead,
|
|
as they wrap this with the appropriate type.
|
|
*/
|
|
func FuncMap() (fmap map[string]any) {
|
|
|
|
var fn string
|
|
var f any
|
|
|
|
fmap = make(map[string]any, len(genericMap))
|
|
|
|
for fn, f = range genericMap {
|
|
fmap[fn] = f
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// HtmlFuncMap returns an [html/template.FuncMap].
|
|
func HtmlFuncMap() (fmap htpl.FuncMap) {
|
|
|
|
var fn string
|
|
var f any
|
|
|
|
fmap = htpl.FuncMap(FuncMap())
|
|
|
|
if htmlMap != nil && len(htmlMap) > 0 {
|
|
for fn, f = range htmlMap {
|
|
fmap[fn] = f
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// TxtFuncMap returns a [text/template.FuncMap].
|
|
func TxtFuncMap() (fmap ttpl.FuncMap) {
|
|
|
|
var fn string
|
|
var f any
|
|
|
|
fmap = ttpl.FuncMap(FuncMap())
|
|
|
|
if txtMap != nil && len(txtMap) > 0 {
|
|
for fn, f = range txtMap {
|
|
fmap[fn] = f
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|