|
- package publicbio
-
- import (
- "html/template"
- "io"
- "log"
- "net/http"
- )
-
- var templates = map[string]*template.Template{}
-
- const templatesDir = "templates/"
-
- func init() {
- initTemplate("profile")
- }
-
- func initTemplate(name string) {
- templates[name] = template.Must(template.New(name).ParseFiles(templatesDir+name+".tmpl", templatesDir+"base.tmpl"))
- }
-
- // renderTemplate retrieves the given template and renders it to the given io.Writer.
- // If something goes wrong, the error is logged and returned.
- func renderTemplate(w io.Writer, tmpl string, data interface{}) error {
- err := templates[tmpl].ExecuteTemplate(w, tmpl, data)
- if err != nil {
- log.Printf("[ERROR] Error rendering %s: %s\n", tmpl, err)
- }
-
- return err
- }
-
- func (app *app) pageHandler(name string) http.HandlerFunc {
- return func(w http.ResponseWriter, r *http.Request) {
- handleError(w, r, func() error {
- return renderTemplate(w, name, nil)
- }())
- }
- }
|