| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package template
- import (
- "bytes"
- "github.com/Masterminds/sprig/v3"
- "text/template"
- )
- type ParseTemplateOption func(tpl *template.Template)
- func WithDelim(leftDelim string, rightDelim string) ParseTemplateOption {
- return func(tpl *template.Template) {
- tpl.Delims(leftDelim, rightDelim)
- }
- }
- func ParseTemplateStringToString(inputStr string, params any, opts ...ParseTemplateOption) (string, error) {
- tpl := template.New(inputStr)
- for _, opt := range opts {
- opt(tpl)
- }
- tpl.Funcs(sprig.FuncMap())
- tpl.Funcs(templateFuncMap)
- return parseTemplateStringToString(tpl, inputStr, params)
- }
- func parseTemplateStringToString(tpl *template.Template, inputStr string, params any) (string, error) {
- tpl, err := tpl.Parse(inputStr)
- if err != nil {
- return "", err
- }
- buffer := &bytes.Buffer{}
- err = tpl.Execute(buffer, params)
- if err != nil {
- return "", err
- }
- return buffer.String(), nil
- }
|