diff options
| author | Mitch Riedstra <mitch@riedstra.us> | 2019-12-22 09:46:17 -0500 |
|---|---|---|
| committer | Mitch Riedstra <mitch@riedstra.us> | 2019-12-22 09:46:17 -0500 |
| commit | c79b18d5a7d3b47ea5db495b4d6a6faf0b7dbb11 (patch) | |
| tree | 10b20a327e88eaf63eec758544595949f2343b0d /page | |
| parent | 8b6467bde7e603e60e128001c3b5e43b1034c561 (diff) | |
| download | go-website-c79b18d5a7d3b47ea5db495b4d6a6faf0b7dbb11.tar.gz go-website-c79b18d5a7d3b47ea5db495b4d6a6faf0b7dbb11.tar.xz | |
Add support for a 404 pagev0.0.2
Diffstat (limited to 'page')
| -rw-r--r-- | page/http.go | 20 | ||||
| -rw-r--r-- | page/page.go | 6 |
2 files changed, 21 insertions, 5 deletions
diff --git a/page/http.go b/page/http.go index acf9147..98546f6 100644 --- a/page/http.go +++ b/page/http.go @@ -4,6 +4,7 @@ import ( "log" "net/http" "path/filepath" + "strings" ) func SetupHandlers() { @@ -22,9 +23,22 @@ func PageHandler(w http.ResponseWriter, r *http.Request) { p := &Page{Name: u} err := p.Render(w) if err != nil { - log.Println(err) - http.Error(w, "Internal server error", 500) - return + if strings.HasSuffix(err.Error(), "no such file or directory") { + log.Printf("Page '%s' not found, trying 404", p.Name) + p.Name = "404" + w.WriteHeader(404) + err := p.Render(w) + if err != nil { + log.Println(err) + http.Error(w, "Internal server error", 500) + return + } + return + } else { + log.Println(err) + http.Error(w, "Internal server error", 500) + return + } } } diff --git a/page/page.go b/page/page.go index 83e3c9e..f5a296c 100644 --- a/page/page.go +++ b/page/page.go @@ -60,9 +60,11 @@ func (p *Page) readYaml() error { } func (p *Page) readMarkdown() error { - b, err := ioutil.ReadFile(p.Name + ".md") + pth := p.Name + ".md" + b, err := ioutil.ReadFile(pth) if err != nil { - return err + return fmt.Errorf("Error while reading markdown for path %s: %v", + pth, err) } p.Body = string(blackfriday.Run(b)) return nil |
