Add 404.html for gh-pages - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 7b1f0960e3b7b31017dce5925e455bd43df86efb
DIR parent f28a8fa0c2d8a7ec038a9dc8a07ecf5716587178
HTML Author: Ross Lawley <ross.lawley@gmail.com>
Date: Wed, 21 Aug 2013 17:21:53 +0100
Add 404.html for gh-pages
Signed-off-by: Noah Campbell <noahcampbell@gmail.com>
Diffstat:
A docs/content/layout/404.html | 31 +++++++++++++++++++++++++++++++
M hugolib/site.go | 12 ++++++++++++
2 files changed, 43 insertions(+), 0 deletions(-)
---
DIR diff --git a/docs/content/layout/404.html b/docs/content/layout/404.html
@@ -0,0 +1,31 @@
+---
+title: "404.html Templates"
+date: "2013-08-21"
+---
+
+When using Hugo with [github pages](http://pages.github.com/) you can provide
+your own 404 template by creating a 404.html file in the root.
+
+404 pages are of the type "node" and have all the [node
+variables](/layout/variables/) available to use in the templates.
+
+In addition to the standard node variables, the homepage has access to
+all site content accessible from .Data.Pages
+
+ ▾ layouts/
+ 404.html
+
+## 404.html
+This is a basic example of a 404.html template:
+
+ {{ template "chrome/header.html" . }}
+ {{ template "chrome/subheader.html" . }}
+
+ <section id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ </div>
+ </section>
+
+ {{ template "chrome/footer.html" }}
+
DIR diff --git a/hugolib/site.go b/hugolib/site.go
@@ -598,6 +598,18 @@ func (s *Site) RenderHomePage() error {
s.Tmpl.ExecuteTemplate(y, "rss.xml", n)
s.WritePublic("index.xml", y.Bytes())
}
+
+ if a := s.Tmpl.Lookup("404.html"); a != nil {
+ n.Url = Urlize("404.html")
+ n.Title = "404 Page not found"
+ n.Permalink = template.HTML(string(n.Site.BaseUrl) + "404.html")
+ x, err := s.RenderThing(n, "404.html")
+ if err != nil {
+ return err
+ }
+ s.WritePublic("404.html", x.Bytes())
+ }
+
return nil
}