diff options
Diffstat (limited to 'render.go')
-rw-r--r-- | render.go | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -2,6 +2,7 @@ package main import ( "net/http" + "strings" "text/template" ) @@ -11,10 +12,33 @@ func renderTemplate(w http.ResponseWriter, tmplPath string, p *Posts) (err error return err } - err = t.Execute(w, p) + data := combineData(tmplPath, p) + + err = t.Execute(w, data) if err != nil { return err } return nil } + +func combineData(path string, p *Posts) map[string]interface{} { + splitPath := strings.Split(path, "/") + + data := make(map[string]interface{}) + + if splitPath[0] == "main" { + switch splitPath[1] { + case "about": + data["Page"] = splitPath[1] + default: + data["Page"] = splitPath[1] + data["Posts"] = p + } + } else { + data["Page"] = splitPath[0] + data["Post"] = p.Contents[0] + } + + return data +} |