package main import ( "fmt" "html/template" "net/http" "github.com/blog/models" ) var posts map[string]*models.Post func index(w http.ResponseWriter, r *http.Request) { fmt.Println(posts) t, err := template.ParseFiles( "views/write.html", "views/header.html", "views/footer.html", ) if err != nil { fmt.Fprintf(w, err.Error()) } t.ExecuteTemplate(w, "write", nil) } func write(w http.ResponseWriter, r *http.Request) { t, err := template.ParseFiles( "views/index.html", "views/header.html", "views/footer.html", ) if err != nil { fmt.Fprintf(w, err.Error()) } t.ExecuteTemplate(w, "index", nil) } func savePost(w http.ResponseWriter, r *http.Request) { id := r.FormValue("id") title := r.FormValue("title") content := r.FormValue("content") post := models.NewPost(id, title, content) post[post.Id] = post http.Redirect(w, r, "/", 302) } func main() { posts = make(map[string]*models.Post, 0) fmt.Println("Listening port 8080") http.Handle("/bower_components/", http.StripPrefix("/bower_components/", http.FileServer(http.Dir("./bower_components/")))) http.HandleFunc("/", index) http.HandleFunc("/write", write) http.HandleFunc("/savePost", savePost) http.ListenAndServe(":8080", nil) }