package ersteller import ( "bytes" "fmt" "regexp" "strings" "text/template" ) func FirstLetterToUpper(name string) string { return strings.ToUpper(name[:1]) + name[1:] } func FirstLetterToLower(name string) string { return strings.ToLower(name[:1]) + name[1:] } func InlineTemplate(templateString string, data any) string { dollarRegex := regexp.MustCompile(`\$(\w+)\$`) templateString = dollarRegex.ReplaceAllStringFunc(templateString, func(s string) string { if strings.HasPrefix(s, "$.") || strings.HasPrefix(s, "$end") || strings.HasPrefix(s, "$else") { return s } return dollarRegex.ReplaceAllString(s, "$.$1$") }) tmpl, err := template.New("inline").Delims("$", "$").Parse(templateString) if err != nil { return fmt.Sprint("Failed to parse template ", err) } var buf bytes.Buffer err = tmpl.Execute(&buf, data) if err != nil { return fmt.Sprint("Failed to execute template ", err) } return buf.String() }