blgo/handler/post.go

28 lines
655 B
Go

package handler
import (
"net/http"
"os"
)
// Post is the handler that renders a post.
func Post(w http.ResponseWriter, r *http.Request) {
fileName := "content" + r.URL.Path + ".md"
// Check if the post exists and is not a directory.
info, err := os.Stat(fileName)
if os.IsNotExist(err) || (info != nil && info.IsDir()) {
w.WriteHeader(http.StatusNotFound)
CurrentTheme.ExecuteTemplate(w, "404.tmpl", nil)
return
}
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
CurrentTheme.ExecuteTemplate(w, "500.tmpl", err)
return
}
// TODO Make it actually pass in a post.
CurrentTheme.ExecuteTemplate(w, "post.tmpl", nil)
}