URI: 
       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
        }