Fix permalink bug in uglyurls mode (refs #187).
authorAnton Ageev <antage@gmail.com>
Sun, 2 Feb 2014 00:58:14 +0000 (04:58 +0400)
committerspf13 <steve.francia@gmail.com>
Sun, 2 Feb 2014 05:56:01 +0000 (00:56 -0500)
hugolib/page.go
hugolib/page_permalink_test.go

index 2c423c5bb76880a8b34ddaee6ae92e946868fddd..5f7289946ae5f2562c2e75012583f9f527e037bb 100644 (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) + "/"
                        }
index fd1f2b2f8ba62658ef54f315722f84866e7bc7a3..614522fededc080a863be46eaa303ffc183cddbe 100644 (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 != "" {