utils/web/render/render.go
2025-02-17 17:13:14 +01:00

30 lines
525 B
Go

package render
import (
"context"
"embed"
"html/template"
"io"
)
type Render struct {
fs embed.FS
t *template.Template
}
type Data map[string]interface{}
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)
}