package engine import ( "bytes" "fmt" "text/template" ) type Renderer struct{} func NewRenderer() *Renderer { return &Renderer{} } func (r *Renderer) Render(tmplContent string, data map[string]interface{}) (string, error) { tmpl, err := template.New("notify").Option("missingkey=error").Parse(tmplContent) if err != nil { return "", fmt.Errorf("parse template: %w", err) } var buf bytes.Buffer if err := tmpl.Execute(&buf, data); err != nil { return "", fmt.Errorf("execute template: %w", err) } return buf.String(), nil }