ref: d45fb72f675997d11406bce82919f1dc50414d68
parent: 803a0fce1ef3f2f42ed649a489ae381586445886
author: Noah Campbell <[email protected]>
date: Fri Sep 13 10:46:34 EDT 2013
Add /index.html to unadorned alias paths Bring code to be better in line with documentation.
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -34,17 +34,17 @@
)
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
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -145,7 +145,9 @@
}
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 @@
if err = s.RenderPages(); err != nil {
return
}
- s.timerStep("render pages")
+ s.timerStep("render and write pages")
if err = s.RenderHomePage(); err != nil {
return
}
--- a/hugolib/site_url_test.go
+++ b/hugolib/site_url_test.go
@@ -2,13 +2,13 @@
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 @@
alias := &InMemoryAliasTarget{files: files}
s := &Site{
Target: target,
- Alias: alias,
+ Alias: alias,
Config: Config{UglyUrls: false},
Source: &inMemorySource{urlFakeSource},
}
@@ -102,9 +102,9 @@
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)
--- a/target/alias_test.go
+++ b/target/alias_test.go
@@ -13,9 +13,13 @@
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 {
--- 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 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
}