mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Fix aliases with uglyURLs
This commit is contained in:
parent
d6ed17c60f
commit
f720fe56db
2 changed files with 17 additions and 15 deletions
|
@ -46,12 +46,15 @@ func TestAlias(t *testing.T) {
|
||||||
c := qt.New(t)
|
c := qt.New(t)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
|
fileSuffix string
|
||||||
urlPrefix string
|
urlPrefix string
|
||||||
|
urlSuffix string
|
||||||
settings map[string]interface{}
|
settings map[string]interface{}
|
||||||
}{
|
}{
|
||||||
{"http://example.com", map[string]interface{}{"baseURL": "http://example.com"}},
|
{"/index.html", "http://example.com", "/", map[string]interface{}{"baseURL": "http://example.com"}},
|
||||||
{"http://example.com", map[string]interface{}{"baseURL": "http://example.com", "canonifyURLs": true}},
|
{"/index.html", "http://example.com", "/", map[string]interface{}{"baseURL": "http://example.com", "canonifyURLs": true}},
|
||||||
{"../..", map[string]interface{}{"relativeURLs": true}},
|
{"/index.html", "../..", "/", map[string]interface{}{"relativeURLs": true}},
|
||||||
|
{".html", "", ".html", map[string]interface{}{"uglyURLs": true}},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
@ -63,10 +66,10 @@ func TestAlias(t *testing.T) {
|
||||||
c.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 1)
|
c.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 1)
|
||||||
|
|
||||||
// the real page
|
// the real page
|
||||||
b.AssertFileContent("public/blog/page/index.html", "For some moments the old man")
|
b.AssertFileContent("public/blog/page"+test.fileSuffix, "For some moments the old man")
|
||||||
// the alias redirectors
|
// the alias redirectors
|
||||||
b.AssertFileContent("public/foo/bar/index.html", "<meta http-equiv=\"refresh\" content=\"0; url="+test.urlPrefix+"/blog/page/\" />")
|
b.AssertFileContent("public/foo/bar"+test.fileSuffix, "<meta http-equiv=\"refresh\" content=\"0; url="+test.urlPrefix+"/blog/page"+test.urlSuffix+"\" />")
|
||||||
b.AssertFileContent("public/blog/rel/index.html", "<meta http-equiv=\"refresh\" content=\"0; url="+test.urlPrefix+"/blog/page/\" />")
|
b.AssertFileContent("public/blog/rel"+test.fileSuffix, "<meta http-equiv=\"refresh\" content=\"0; url="+test.urlPrefix+"/blog/page"+test.urlSuffix+"\" />")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -338,19 +338,18 @@ func (s *Site) renderAliases() error {
|
||||||
if isRelative {
|
if isRelative {
|
||||||
// Make alias relative, where "." will be on the
|
// Make alias relative, where "." will be on the
|
||||||
// same directory level as the current page.
|
// same directory level as the current page.
|
||||||
// TODO(bep) ugly URLs doesn't seem to be supported in
|
basePath := path.Join(of.RelPermalink(), "..")
|
||||||
// aliases, I'm not sure why not.
|
|
||||||
basePath := of.RelPermalink()
|
|
||||||
if strings.HasSuffix(basePath, "/") {
|
|
||||||
basePath = path.Join(basePath, "..")
|
|
||||||
}
|
|
||||||
a = path.Join(basePath, a)
|
a = path.Join(basePath, a)
|
||||||
|
|
||||||
} else if f.Path != "" {
|
} else {
|
||||||
// Make sure AMP and similar doesn't clash with regular aliases.
|
// Make sure AMP and similar doesn't clash with regular aliases.
|
||||||
a = path.Join(f.Path, a)
|
a = path.Join(f.Path, a)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.UglyURLs && !strings.HasSuffix(a, ".html") {
|
||||||
|
a += ".html"
|
||||||
|
}
|
||||||
|
|
||||||
lang := p.Language().Lang
|
lang := p.Language().Lang
|
||||||
|
|
||||||
if s.h.multihost && !strings.HasPrefix(a, "/"+lang) {
|
if s.h.multihost && !strings.HasPrefix(a, "/"+lang) {
|
||||||
|
|
Loading…
Reference in a new issue