added helper html template rendering utils

This commit is contained in:
Gani Georgiev
2023-07-23 15:27:51 +03:00
parent 13c0572fe1
commit 4f3ca6fe2b
4 changed files with 258 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
package template
import (
"bytes"
"errors"
"html/template"
)
// Renderer defines a single parsed template.
type Renderer struct {
template *template.Template
parseError error
}
// Render executes the template with the specified data as the dot object
// and returns the result as plain string.
func (r *Renderer) Render(data any) (string, error) {
if r.parseError != nil {
return "", r.parseError
}
if r.template == nil {
return "", errors.New("invalid or nil template")
}
buf := new(bytes.Buffer)
if err := r.template.Execute(buf, data); err != nil {
return "", err
}
return buf.String(), nil
}