diff options
Diffstat (limited to 'forged/internal/incoming/web/templates/renderer.go')
-rw-r--r-- | forged/internal/incoming/web/templates/renderer.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/forged/internal/incoming/web/templates/renderer.go b/forged/internal/incoming/web/templates/renderer.go index 1e2f325..350e9ec 100644 --- a/forged/internal/incoming/web/templates/renderer.go +++ b/forged/internal/incoming/web/templates/renderer.go @@ -1,7 +1,9 @@ package templates import ( + "bytes" "html/template" + "log/slog" "net/http" ) @@ -18,6 +20,16 @@ func New(t *template.Template) Renderer { } func (r *tmplRenderer) Render(w http.ResponseWriter, name string, data any) error { + var buf bytes.Buffer + if err := r.t.ExecuteTemplate(&buf, name, data); err != nil { + slog.Error("template render failed", "name", name, "error", err) + return err + } w.Header().Set("Content-Type", "text/html; charset=utf-8") - return r.t.ExecuteTemplate(w, name, data) + n, err := w.Write(buf.Bytes()) + if err != nil { + return err + } + slog.Info("template rendered", "name", name, "bytes", n) + return nil } |