Files
complie-erlang/template/template_engine.go
T

49 lines
978 B
Go

package template
import (
"strings"
"text/template"
)
type Template struct {
GlobTemplate *template.Template
}
var DefaultFuncMap = template.FuncMap{
"hd": hd,
"title": strings.Title,
"join": strings.Join,
"list": func(strs []string) string { return strings.Join(strs, ",") },
"cmd2func": func(str string) string {
splits := strings.Split(str, "/")
return splits[len(splits)-1]
},
}
func hd(str []string) string {
return str[0]
}
func NewTemplate() *Template {
return &Template{}
}
func (t *Template) ParseGlob(pattern string) error {
parse, err := template.New("").
Funcs(DefaultFuncMap).ParseGlob(pattern)
if err != nil {
return err
}
t.GlobTemplate = template.Must(parse, nil)
return nil
}
func (t *Template) ExecuteTemplate(templateName2 string, data interface{}) (string, error) {
var buf strings.Builder
err := t.GlobTemplate.ExecuteTemplate(&buf, templateName2, data)
if err != nil {
return "", err
}
return buf.String(), nil
}