2016-11-09 22:28:06 +00:00
|
|
|
package template
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
"text/template"
|
|
|
|
)
|
|
|
|
|
|
|
|
// funcMap defines functions for our template system.
|
|
|
|
var funcMap = template.FuncMap{
|
|
|
|
"join": func(s ...string) string {
|
|
|
|
// first arg is sep, remaining args are strings to join
|
|
|
|
return strings.Join(s[1:], s[0])
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2017-06-15 18:11:48 +00:00
|
|
|
func newTemplate(s string, extraFuncs template.FuncMap) (*template.Template, error) {
|
|
|
|
tmpl := template.New("expansion").Option("missingkey=error").Funcs(funcMap)
|
|
|
|
if len(extraFuncs) != 0 {
|
|
|
|
tmpl = tmpl.Funcs(extraFuncs)
|
|
|
|
}
|
|
|
|
return tmpl.Parse(s)
|
2016-11-09 22:28:06 +00:00
|
|
|
}
|