diff options
Diffstat (limited to 'echo/template_renderer.go')
-rw-r--r-- | echo/template_renderer.go | 34 |
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 | ||
13 | type TemplateChecker interface { | 13 | type TemplateChecker interface { |
14 | HaveTemplate(echo.Context, string) bool | 14 | HaveTemplate(string) bool |
15 | } | 15 | } |
16 | 16 | ||
17 | type TemplateRenderer struct { | 17 | type 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 | ||
24 | func NewTemplateRenderer(templates fs.FS, glob string, funcs template.FuncMap) (*TemplateRenderer, error) { | 25 | func 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 | ||
68 | func (r *TemplateRenderer) getTemplateCache(ctx echo.Context) (*template.Template, error) { | 75 | func (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 | ||
82 | func (r *TemplateRenderer) Render(w io.Writer, name string, data interface{}, ctx echo.Context) error { | 88 | func (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 | ||
99 | func (r *TemplateRenderer) HaveTemplate(ctx echo.Context, name string) bool { | 105 | func (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 | } |