diff --git a/hugolib/page.go b/hugolib/page.go index 2c423c5bb..5f7289946 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -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) + "/" } diff --git a/hugolib/page_permalink_test.go b/hugolib/page_permalink_test.go index fd1f2b2f8..614522fed 100644 --- a/hugolib/page_permalink_test.go +++ b/hugolib/page_permalink_test.go @@ -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 != "" {