html_debug.go 878 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2014 Manu Martinez-Almeida. All rights reserved.
  2. // Use of this source code is governed by a MIT style
  3. // license that can be found in the LICENSE file.
  4. package render
  5. import (
  6. "errors"
  7. "html/template"
  8. "net/http"
  9. )
  10. type HTMLDebugRender struct {
  11. Files []string
  12. Glob string
  13. }
  14. func (r *HTMLDebugRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
  15. WriteHeader(w, code, "text/html")
  16. file := data[0].(string)
  17. obj := data[1]
  18. if t, err := r.loadTemplate(); err == nil {
  19. return t.ExecuteTemplate(w, file, obj)
  20. } else {
  21. return err
  22. }
  23. }
  24. func (r *HTMLDebugRender) loadTemplate() (*template.Template, error) {
  25. if len(r.Files) > 0 {
  26. return template.ParseFiles(r.Files...)
  27. }
  28. if len(r.Glob) > 0 {
  29. return template.ParseGlob(r.Glob)
  30. }
  31. return nil, errors.New("the HTML debug render was created without files or glob pattern")
  32. }