URI: 
       Add /index.html to unadorned alias paths - 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 d45fb72f675997d11406bce82919f1dc50414d68
   DIR parent 803a0fce1ef3f2f42ed649a489ae381586445886
  HTML Author: Noah Campbell <noahcampbell@gmail.com>
       Date:   Fri, 13 Sep 2013 14:46:34 -0700
       
       Add /index.html to unadorned alias paths
       
       Bring code to be better in line with documentation.
       
       Diffstat:
         M hugolib/page.go                     |      22 +++++++++++-----------
         M hugolib/site.go                     |       6 ++++--
         M hugolib/site_url_test.go            |      12 ++++++------
         M target/alias_test.go                |       6 +++++-
         M target/htmlredirect.go              |      14 ++++++++++----
       
       5 files changed, 36 insertions(+), 24 deletions(-)
       ---
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -34,17 +34,17 @@ import (
        )
        
        type Page struct {
       -        Status          string
       -        Images          []string
       -        Content         template.HTML
       -        Summary         template.HTML
       -        RawMarkdown     string // TODO should be []byte
       -        Params          map[string]interface{}
       -        contentType     string
       -        Draft           bool
       -        Aliases         []string
       -        Tmpl            bundle.Template
       -        Markup          string
       +        Status      string
       +        Images      []string
       +        Content     template.HTML
       +        Summary     template.HTML
       +        RawMarkdown string // TODO should be []byte
       +        Params      map[string]interface{}
       +        contentType string
       +        Draft       bool
       +        Aliases     []string
       +        Tmpl        bundle.Template
       +        Markup      string
                PageMeta
                File
                Position
   DIR diff --git a/hugolib/site.go b/hugolib/site.go
       @@ -145,7 +145,9 @@ func (s *Site) Process() (err error) {
        }
        
        func (s *Site) Render() (err error) {
       -        s.RenderAliases()
       +        if err = s.RenderAliases(); err != nil {
       +                return
       +        }
                s.timerStep("render and write aliases")
                s.ProcessShortcodes()
                s.timerStep("render shortcodes")
       @@ -161,7 +163,7 @@ func (s *Site) Render() (err error) {
                if err = s.RenderPages(); err != nil {
                        return
                }
       -        s.timerStep("render pages")
       +        s.timerStep("render and write pages")
                if err = s.RenderHomePage(); err != nil {
                        return
                }
   DIR diff --git a/hugolib/site_url_test.go b/hugolib/site_url_test.go
       @@ -2,13 +2,13 @@ package hugolib
        
        import (
                "bytes"
       +        "github.com/spf13/hugo/target"
       +        "html/template"
                "io"
                "testing"
       -        "html/template"
       -        "github.com/spf13/hugo/target"
        )
        
       -const SLUG_DOC_1 = "---\ntitle: slug doc 1\nslug: slug-doc-1\naliases:\n - sd1/foo/\n - sd2\n - sd3/\n - sd4.php\n---\nslug doc 1 content"
       +const SLUG_DOC_1 = "---\ntitle: slug doc 1\nslug: slug-doc-1\naliases:\n - sd1/foo/\n - sd2\n - sd3/\n - sd4.html\n---\nslug doc 1 content"
        
        //const SLUG_DOC_1 = "---\ntitle: slug doc 1\nslug: slug-doc-1\n---\nslug doc 1 content"
        const SLUG_DOC_2 = "---\ntitle: slug doc 2\nslug: slug-doc-2\n---\nslug doc 2 content"
       @@ -68,7 +68,7 @@ func TestPageCount(t *testing.T) {
                alias := &InMemoryAliasTarget{files: files}
                s := &Site{
                        Target: target,
       -                Alias: alias,
       +                Alias:  alias,
                        Config: Config{UglyUrls: false},
                        Source: &inMemorySource{urlFakeSource},
                }
       @@ -102,9 +102,9 @@ func TestPageCount(t *testing.T) {
        
                for _, s := range []string{
                        "sd1/foo/index.html",
       -                "sd2",
       +                "sd2/index.html",
                        "sd3/index.html",
       -                "sd4.php",
       +                "sd4.html",
                } {
                        if _, ok := target.files[s]; !ok {
                                t.Errorf("No alias rendered: %s", s)
   DIR diff --git a/target/alias_test.go b/target/alias_test.go
       @@ -13,9 +13,13 @@ func TestHTMLRedirectAlias(t *testing.T) {
                        expected string
                }{
                        {"", ""},
       -                {"alias 1", "alias-1"},
       +                {"s", "s/index.html"},
       +                {"/", "/index.html"},
       +                {"alias 1", "alias-1/index.html"},
                        {"alias 2/", "alias-2/index.html"},
                        {"alias 3.html", "alias-3.html"},
       +                {"alias4.html", "alias4.html"},
       +                {"/alias 5.html", "/alias-5.html"},
                }
        
                for _, test := range tests {
   DIR diff --git a/target/htmlredirect.go b/target/htmlredirect.go
       @@ -1,15 +1,15 @@
        package target
        
        import (
       +        "bytes"
                helpers "github.com/spf13/hugo/template"
       +        "html/template"
                "path"
       -        "bytes"
                "strings"
       -        "html/template"
        )
        
        const ALIAS = "<!DOCTYPE html><html><head><link rel=\"canonical\" href=\"{{ .Permalink }}\"/><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" /><meta http-equiv=\"refresh\" content=\"0;url={{ .Permalink }}\" /></head></html>"
       -const        ALIAS_XHTML = "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><link rel=\"canonical\" href=\"{{ .Permalink }}\"/><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" /><meta http-equiv=\"refresh\" content=\"0;url={{ .Permalink }}\" /></head></html>"
       +const ALIAS_XHTML = "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><link rel=\"canonical\" href=\"{{ .Permalink }}\"/><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" /><meta http-equiv=\"refresh\" content=\"0;url={{ .Permalink }}\" /></head></html>"
        
        var DefaultAliasTemplates *template.Template
        
       @@ -26,12 +26,18 @@ type AliasPublisher interface {
        
        type HTMLRedirectAlias struct {
                PublishDir string
       -        Templates *template.Template
       +        Templates  *template.Template
        }
        
        func (h *HTMLRedirectAlias) Translate(alias string) (aliasPath string, err error) {
       +        if len(alias) <= 0 {
       +                return
       +        }
       +
                if strings.HasSuffix(alias, "/") {
                        alias = alias + "index.html"
       +        } else if !strings.HasSuffix(alias, ".html") {
       +                alias = alias + "/index.html"
                }
                return path.Join(h.PublishDir, helpers.Urlize(alias)), nil
        }