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] }