utils/web/render/render.go
2025-02-17 15:02:08 +01:00

28 lines
489 B
Go

package render
import (
"context"
"embed"
"html/template"
"io"
)
type Render struct {
fs embed.FS
t template.Template
}
func NewRender(efs embed.FS, t template.Template) Render {
tr := Render{
fs: efs,
t: t,
}
return tr
}
func (r Render) Render(ctx context.Context, w io.Writer, name string, data interface{}) error {
tmpl := template.Must(r.t.Clone())
tmpl = template.Must(tmpl.ParseFS(r.fs, "templates/"+name+".html"))
return tmpl.ExecuteTemplate(w, name, data)
}