ref: 860f982cc454a6a5e111eb5b79915cd21f49240e
parent: e425226a2802993f4be3689565136965fb5bc58c
author: Tim Esselens <[email protected]>
date: Tue Nov 19 09:10:03 EST 2013
fixed trailing dir slash when using slug See testcase, dir + slug contained double slash when dir had a trailing slash. Signed-off-by: Noah Campbell <[email protected]>
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -265,7 +265,7 @@
if p.Site.Config != nil && p.Site.Config.UglyUrls {
permalink = path.Join(dir, p.Slug, p.Extension)
} else {
- permalink = dir + "/" + p.Slug + "/"
+ permalink = path.Join(dir, p.Slug) + "/"
}
} else if len(pUrl) > 2 {
permalink = pUrl
--- a/hugolib/page_permalink_test.go
+++ b/hugolib/page_permalink_test.go
@@ -7,12 +7,18 @@
func TestPermalink(t *testing.T) {
tests := []struct {
+ file string
+ dir string
base template.URL
+ slug string
expectedAbs string
expectedRel string
}{
- {"", "/x/y/z/boofar", "/x/y/z/boofar"},
- {"http://barnew/", "http://barnew/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/", "", "", "/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/"},
}
for _, test := range tests {
@@ -21,7 +27,13 @@
UrlPath: UrlPath{Section: "z"},
Site: SiteInfo{BaseUrl: test.base},
},
- File: File{FileName: "x/y/z/boofar.md", Dir: "x/y/z"},
+ File: File{FileName: test.file, Dir: test.dir},
+ }
+
+ if test.slug != "" {
+ p.update(map[string]interface{}{
+ "slug": test.slug,
+ })
}
u, err := p.Permalink()