package main import ( "html/template" "io" "github.com/labstack/echo/v4" ) type Renderer struct { template *template.Template debug bool location string } func NewRenderer(location string, debug bool) *Renderer { r := Renderer{} r.location = location r.debug = debug r.ReloadTemplates() return &r } func (r *Renderer) ReloadTemplates() { r.template = template.Must(template.ParseGlob(r.location)) } func (r *Renderer) Render(w io.Writer, name string, data interface{}, c echo.Context) error { if r.debug { r.ReloadTemplates() } return r.template.ExecuteTemplate(w, name, data) }