feat: engine — template renderer, rule matcher, channel router

This commit is contained in:
2026-06-27 13:19:15 +08:00
parent 49b2384cf7
commit 83c4166f0c
4 changed files with 204 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
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
}