aboutsummaryrefslogtreecommitdiff
path: root/echo/template_renderer.go
diff options
context:
space:
mode:
Diffstat (limited to 'echo/template_renderer.go')
-rw-r--r--echo/template_renderer.go34
1 files changed, 20 insertions, 14 deletions
diff --git a/echo/template_renderer.go b/echo/template_renderer.go
index 7bfd006..8515249 100644
--- a/echo/template_renderer.go
+++ b/echo/template_renderer.go
@@ -11,7 +11,7 @@ import (
11) 11)
12 12
13type TemplateChecker interface { 13type TemplateChecker interface {
14 HaveTemplate(echo.Context, string) bool 14 HaveTemplate(string) bool
15} 15}
16 16
17type TemplateRenderer struct { 17type TemplateRenderer struct {
@@ -19,12 +19,19 @@ type TemplateRenderer struct {
19 glob string 19 glob string
20 funcs template.FuncMap 20 funcs template.FuncMap
21 cache *template.Template 21 cache *template.Template
22 debug bool
22} 23}
23 24
24func NewTemplateRenderer(templates fs.FS, glob string, funcs template.FuncMap) (*TemplateRenderer, error) { 25func NewTemplateRenderer(templates fs.FS, glob string, funcs template.FuncMap, debug bool) (*TemplateRenderer, error) {
25 var err error 26 var err error
26 27
27 r := &TemplateRenderer{templates: templates, glob: glob, funcs: funcs} 28 r := &TemplateRenderer{
29 templates: templates,
30 glob: glob,
31 funcs: funcs,
32 debug: debug,
33 }
34
28 r.cache, err = r.loadTemplates() 35 r.cache, err = r.loadTemplates()
29 if err != nil { 36 if err != nil {
30 return nil, err 37 return nil, err
@@ -65,22 +72,21 @@ func (r *TemplateRenderer) loadTemplates() (*template.Template, error) {
65 return t, nil 72 return t, nil
66} 73}
67 74
68func (r *TemplateRenderer) getTemplateCache(ctx echo.Context) (*template.Template, error) { 75func (r *TemplateRenderer) getTemplateCache() (*template.Template, error) {
69 var err error 76 if !r.debug {
77 return r.cache, nil
78 }
70 79
71 tc := r.cache 80 tc, err := r.loadTemplates()
72 if ctx.Echo().Debug { 81 if err != nil {
73 tc, err = r.loadTemplates() 82 return nil, err
74 if err != nil {
75 return nil, err
76 }
77 } 83 }
78 84
79 return tc, nil 85 return tc, nil
80} 86}
81 87
82func (r *TemplateRenderer) Render(w io.Writer, name string, data interface{}, ctx echo.Context) error { 88func (r *TemplateRenderer) Render(w io.Writer, name string, data interface{}, ctx echo.Context) error {
83 tc, err := r.getTemplateCache(ctx) 89 tc, err := r.getTemplateCache()
84 if err != nil { 90 if err != nil {
85 return err 91 return err
86 } 92 }
@@ -96,8 +102,8 @@ func (r *TemplateRenderer) Render(w io.Writer, name string, data interface{}, ct
96 return nil 102 return nil
97} 103}
98 104
99func (r *TemplateRenderer) HaveTemplate(ctx echo.Context, name string) bool { 105func (r *TemplateRenderer) HaveTemplate(name string) bool {
100 tc, err := r.getTemplateCache(ctx) 106 tc, err := r.getTemplateCache()
101 if err != nil { 107 if err != nil {
102 return false 108 return false
103 } 109 }