From 27a813ba6f0e1aac2330eeb8318184058ce0fad8 Mon Sep 17 00:00:00 2001 From: cubixle <4376523+cubixle@users.noreply.github.com> Date: Wed, 3 Aug 2022 16:04:20 +0100 Subject: [PATCH] add template reloading --- renderer/renderer.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/renderer/renderer.go b/renderer/renderer.go index 1eac71f..7c56eac 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -34,15 +34,25 @@ func (e *ErrFailedToWrite) Error() string { } type HTMLRender struct { + fs fs.FS + pattern string + reload bool templates *template.Template } -func New(fs fs.FS, pattern string) (*HTMLRender, error) { +func New(fs fs.FS, pattern string, reload bool) (*HTMLRender, error) { return &HTMLRender{ templates: template.Must(template.ParseFS(fs, pattern)), + fs: fs, + pattern: pattern, + reload: reload, }, nil } func (h *HTMLRender) Render(w io.Writer, templateName string, data interface{}, ctx echo.Context) error { + if h.reload { + h.templates = template.Must(template.ParseFS(h.fs, h.pattern)) + } + return h.templates.ExecuteTemplate(w, templateName, data) }