|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package view
-
- import (
- "html/template"
- "net/http"
- "log"
- )
-
- var (
- available = true
- matrix = "zgvhdgh0b3nwawv6"
- )
-
- type Page struct {
- tpl *template.Template
- Title string
- Name string
- Matrix string
- Available bool
- }
-
- var titles = map[string]string {
- "home": "Home",
- "services": "Services",
- "contact": "Contact",
- "web": "Web Development",
- "projects": "Projects",
- "about": "About",
- }
-
- var paths = map[string]string {
- "home": "view/home.tpl",
- "services": "view/services.tpl",
- "contact": "view/contact.tpl",
- "web": "view/web.tpl",
- "projects": "view/projects.tpl",
- "about": "view/about.tpl",
- }
-
- var pages = map[string]Page {
- "home": cache("home"),
- "services": cache("services"),
- "contact": cache("contact"),
- "web": cache("web"),
- "projects": cache("projects"),
- "about": cache("about"),
- }
-
- func parse(path string) *template.Template {
- var paths = []string{"view/master.tpl", path}
- tpl, err := template.ParseFiles(paths...)
- if err != nil {
- log.Print(err, "| Could not parse:", path)
- }
- return tpl
- }
-
- func Create(name string) Page {
- tpl := parse(paths[name])
- title := titles[name]
- return Page{tpl: tpl,
- Title: title,
- Name: name,
- Matrix: matrix,
- Available: available}
- }
-
- func cache(name string) Page {
- var p = []string{"view/master.tpl", paths[name]}
- tpl := template.Must(template.ParseFiles(p...))
- return Page{tpl: tpl,
- Title: titles[name],
- Name: name,
- Matrix: matrix,
- Available: available}
- }
-
- func Get(name string) Page {
- return pages[name]
- }
- func (page Page) Render(w http.ResponseWriter) {
- err := page.tpl.Execute(w, page)
- if err != nil {
- log.Print(err)
- }
- }
|