renderer.go 605 B

123456789101112131415161718192021222324252627282930313233
  1. package main
  2. import (
  3. "html/template"
  4. "io"
  5. "github.com/labstack/echo/v4"
  6. )
  7. type Renderer struct {
  8. template *template.Template
  9. debug bool
  10. location string
  11. }
  12. func NewRenderer(location string, debug bool) *Renderer {
  13. r := Renderer{}
  14. r.location = location
  15. r.debug = debug
  16. r.ReloadTemplates()
  17. return &r
  18. }
  19. func (r *Renderer) ReloadTemplates() {
  20. r.template = template.Must(template.ParseGlob(r.location))
  21. }
  22. func (r *Renderer) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
  23. if r.debug {
  24. r.ReloadTemplates()
  25. }
  26. return r.template.ExecuteTemplate(w, name, data)
  27. }