mirror of
https://github.com/lone-cloud/prism
synced 2026-06-03 08:43:10 -07:00
27 lines
616 B
Go
27 lines
616 B
Go
package util
|
|
|
|
import (
|
|
"bytes"
|
|
"html/template"
|
|
)
|
|
|
|
type TemplateRenderer struct {
|
|
tmpl *template.Template
|
|
}
|
|
|
|
func NewTemplateRenderer(tmpl *template.Template) *TemplateRenderer {
|
|
return &TemplateRenderer{tmpl: tmpl}
|
|
}
|
|
|
|
func (tr *TemplateRenderer) Render(name string, data interface{}) (string, error) {
|
|
var buf bytes.Buffer
|
|
if err := tr.tmpl.ExecuteTemplate(&buf, name, data); err != nil {
|
|
return "", err
|
|
}
|
|
return buf.String(), nil
|
|
}
|
|
|
|
func (tr *TemplateRenderer) RenderHTML(name string, data interface{}) (template.HTML, error) {
|
|
content, err := tr.Render(name, data)
|
|
return template.HTML(content), err
|
|
}
|