commit dd24b12b9ffd70f492d6e466baf3503e3aee015e
parent f157c55511790149672346c447f618d1e32a7c3a
Author: Nat Welch <nat@natwelch.com>
Date: Wed, 12 Jan 2022 02:12:33 +0000
fix template rendering
Diffstat:
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/server/server.go b/server/server.go
@@ -94,18 +94,7 @@ func (h RequestHandler) IsLoggedIn(req *http.Request) (bool, int) {
return true, userid
}
-var views = []string{"index", "head", "footer", "login-component", "login", "register", "register-success", "thread", "new-thread", "generic-message", "about"}
-
-// wrap the contents of `views` to the format expected by template.ParseFiles()
-func wrapViews() []string {
- for i, item := range views {
- views[i] = fmt.Sprintf("html/%s.html", item)
- }
- return views
-}
-
var (
- templates = template.Must(template.ParseFiles(wrapViews()...))
templateFuncs = template.FuncMap{
"formatDateTime": func(t time.Time) string {
return t.Format("2006-01-02 15:04:05")
@@ -120,14 +109,17 @@ var (
)
func (h RequestHandler) renderView(res http.ResponseWriter, viewName string, data TemplateData) {
+ view := viewName + ".html"
+ tpl, err := template.New(view).Funcs(templateFuncs).ParseFile(view)
+ if err != nil {
+ util.Check(err, "parsing %q view", view)
+ }
+
if data.Title == "" {
data.Title = strings.ReplaceAll(viewName, "-", " ")
}
- errTemp := templates.Funcs(templateFuncs).ExecuteTemplate(res, viewName+".html", data)
- if errors.Is(errTemp, syscall.EPIPE) {
- fmt.Println("had a broken pipe, continuing")
- } else {
+ if err := t.ExecuteTemplate(res, viewName+".html", data); err != nil {
util.Check(errTemp, "rendering %s view", viewName)
}
}