s1llyw0rdz/web/handler/tpl.go

38 lines
933 B
Go

package handler
import (
"html/template"
"io"
)
var views = make(map[string]*template.Template)
func (h *Handler) initTpl() {
commonTemplates := ""
for _, content := range TplCommonMap {
commonTemplates += content
}
for name, content := range TplMap {
views[name] = template.Must(template.New("main").Funcs(template.FuncMap{
"faces": func() []string {
return []string{"☕", "🙂", "🙃", "😇", "😋", "😐", "😴", "😎", "🤓", "🧐", "😭", "😡", "💀", "🤖",
"🍺", "🍷"}
}}).Parse(commonTemplates + content))
}
}
func (h *Handler) renderLayout(w io.Writer, view string, params map[string]interface{}, user string) {
data := make(map[string]interface{})
if params != nil {
for k, v := range params {
data[k] = v
}
}
data["logged"] = user
views[view].ExecuteTemplate(w, "layout", data)
}
func (h *Handler) view(view string) *template.Template {
return views[view]
}