|
|
@@ -24,6 +24,8 @@ func jsonFunc(v any) (string, error) {
|
|
|
return string(data), nil
|
|
|
}
|
|
|
|
|
|
+// Root template (funcs/options). parseTemplate clones before Parse — text/template
|
|
|
+// must not receive concurrent Parse calls on the same instance.
|
|
|
var tpl = template.New("tpl").
|
|
|
Option("missingkey=error").
|
|
|
Funcs(template.FuncMap{"Json": jsonFunc})
|
|
|
@@ -179,7 +181,12 @@ func checkMissingArgumentError(err error) (bool, string) {
|
|
|
}
|
|
|
|
|
|
func parseTemplate(source string, data any) (string, error) {
|
|
|
- t, err := tpl.Parse(source)
|
|
|
+ clone, err := tpl.Clone()
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+
|
|
|
+ t, err := clone.Parse(source)
|
|
|
|
|
|
if err != nil {
|
|
|
return "", err
|