Fix #302. Links now have trailing slashes.
authorspf13 <steve.francia@gmail.com>
Mon, 25 Aug 2014 16:11:19 +0000 (12:11 -0400)
committerspf13 <steve.francia@gmail.com>
Mon, 25 Aug 2014 16:45:47 +0000 (12:45 -0400)
helpers/url.go
hugolib/page_permalink_test.go

index 8a33c5b86bba7db6a03c0c53ad67f575da04e6de..04883205859b9a7a8481e35287af2fd6f9f1c865 100644 (file)
@@ -23,7 +23,7 @@ import (
 )
 
 func SanitizeUrl(in string) string {
-       url, err := purell.NormalizeURLString(in, purell.FlagsUsuallySafeGreedy|purell.FlagRemoveDuplicateSlashes|purell.FlagRemoveUnnecessaryHostDots|purell.FlagRemoveEmptyPortSeparator)
+       url, err := purell.NormalizeURLString(in, purell.FlagsSafe|purell.FlagRemoveTrailingSlash|purell.FlagRemoveDotSegments|purell.FlagRemoveDuplicateSlashes|purell.FlagRemoveUnnecessaryHostDots|purell.FlagRemoveEmptyPortSeparator)
        if err != nil {
                return in
        }
@@ -79,11 +79,16 @@ func MakePermalink(host, plink string) *url.URL {
 }
 
 func UrlPrep(ugly bool, in string) string {
-       in = SanitizeUrl(in)
        if ugly {
-               return Uglify(in)
+               x := Uglify(SanitizeUrl(in))
+               return x
        } else {
-               return PrettifyUrl(in)
+               x := PrettifyUrl(SanitizeUrl(in))
+               url, err := purell.NormalizeURLString(x, purell.FlagAddTrailingSlash)
+               if err != nil {
+                       return in
+               }
+               return url
        }
 }
 
index be88c2faf701f6b51776ba8576f362e0867c057d..b20362d5eb81d4229a37af8e96a1e69b82e2c9c4 100644 (file)
@@ -18,11 +18,11 @@ func TestPermalink(t *testing.T) {
                expectedAbs string
                expectedRel string
        }{
-               {"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", "", "", "", 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"},