move to templ
This commit is contained in:
parent
31a33cc220
commit
bb32802324
34 changed files with 1011 additions and 528 deletions
|
|
@ -1,47 +1,23 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"git.bronku.xyz/bronku/cake-order-tracker/logging"
|
||||
)
|
||||
|
||||
//go:embed templates/*
|
||||
var templates embed.FS
|
||||
|
||||
func (h *Server) loadTemplates() {
|
||||
h.tmpl = make(map[string]*template.Template)
|
||||
funcs := template.FuncMap{
|
||||
"add": func(a, b int) int { return a + b },
|
||||
"mult": func(a, b int) int { return a * b },
|
||||
}
|
||||
for _, page := range h.routes {
|
||||
tmpl, err := template.New("").Funcs(funcs).ParseFS(templates,
|
||||
"templates/layout/*.gohtml",
|
||||
"templates/"+page.template+".gohtml",
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
h.tmpl[page.template] = tmpl
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Server) render(fetch fetcher, templateFile string, templateEntry string) http.HandlerFunc {
|
||||
func (h *Server) render(fetch fetcher) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
data, code, err := fetch(r)
|
||||
component, code, err := fetch(r)
|
||||
if err != nil {
|
||||
logging.ErrorPage(err, code).ServeHTTP(w, r)
|
||||
return
|
||||
}
|
||||
err = h.tmpl[templateFile].ExecuteTemplate(w, templateEntry, data)
|
||||
w.Header().Set("content-type", "text/html")
|
||||
err = component.Render(r.Context(), w)
|
||||
if err != nil {
|
||||
logging.ErrorPage(err, http.StatusInternalServerError).ServeHTTP(w, r)
|
||||
return
|
||||
}
|
||||
w.Header().Set("content-type", "text/html")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue