Fix permalink bug in uglyurls mode (refs #187).

This commit is contained in:
Anton Ageev 2014-02-02 04:58:14 +04:00 committed by spf13
parent 3e87d7a86e
commit 72ba6d633d
2 changed files with 20 additions and 8 deletions

View file

@ -277,7 +277,8 @@ func (p *Page) permalink() (*url.URL, error) {
if len(pSlug) > 0 {
if p.Site.Config != nil && p.Site.Config.UglyUrls {
permalink = path.Join(dir, p.Slug, p.Extension)
filename := fmt.Sprintf("%s.%s", p.Slug, p.Extension)
permalink = path.Join(dir, filename)
} else {
permalink = path.Join(dir, p.Slug) + "/"
}

View file

@ -11,23 +11,34 @@ func TestPermalink(t *testing.T) {
dir string
base template.URL
slug string
uglyurls bool
expectedAbs string
expectedRel string
}{
{"x/y/z/boofar.md", "x/y/z", "", "", "/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "", "", "/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "", "boofar", "/x/y/z/boofar/", "/x/y/z/boofar/"},
{"x/y/z/boofar.md", "x/y/z", "http://barnew/", "", "http://barnew/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "http://barnew/", "boofar", "http://barnew/x/y/z/boofar/", "/x/y/z/boofar/"},
{"x/y/z/boofar.md", "x/y/z", "", "", false, "/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "", "", false, "/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "", "boofar", false, "/x/y/z/boofar/", "/x/y/z/boofar/"},
{"x/y/z/boofar.md", "x/y/z", "http://barnew/", "", false, "http://barnew/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "http://barnew/", "boofar", false, "http://barnew/x/y/z/boofar/", "/x/y/z/boofar/"},
{"x/y/z/boofar.md", "x/y/z", "", "", true, "/x/y/z/boofar.html", "/x/y/z/boofar.html"},
{"x/y/z/boofar.md", "x/y/z/", "", "", true, "/x/y/z/boofar.html", "/x/y/z/boofar.html"},
{"x/y/z/boofar.md", "x/y/z/", "", "boofar", true, "/x/y/z/boofar.html", "/x/y/z/boofar.html"},
{"x/y/z/boofar.md", "x/y/z", "http://barnew/", "", true, "http://barnew/x/y/z/boofar.html", "/x/y/z/boofar.html"},
{"x/y/z/boofar.md", "x/y/z/", "http://barnew/", "boofar", true, "http://barnew/x/y/z/boofar.html", "/x/y/z/boofar.html"},
}
for _, test := range tests {
p := &Page{
Node: Node{
UrlPath: UrlPath{Section: "z"},
Site: SiteInfo{BaseUrl: test.base},
Site: SiteInfo{
BaseUrl: test.base,
Config: &Config{
UglyUrls: test.uglyurls,
},
},
},
File: File{FileName: test.file, Dir: test.dir},
File: File{FileName: test.file, Dir: test.dir, Extension: "html"},
}
if test.slug != "" {