mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-01-26 15:03:00 +02:00
34 lines
624 B
Go
34 lines
624 B
Go
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
|
|
}
|