From 30af267b32dcbf07cd382c1541a6cfd18c5e7c89 Mon Sep 17 00:00:00 2001 From: spf13 Date: Mon, 25 Aug 2014 12:11:19 -0400 Subject: [PATCH] Fix #302. Links now have trailing slashes. --- helpers/url.go | 13 +++++++++---- hugolib/page_permalink_test.go | 10 +++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/helpers/url.go b/helpers/url.go index 8a33c5b86..048832058 100644 --- a/helpers/url.go +++ b/helpers/url.go @@ -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 } } diff --git a/hugolib/page_permalink_test.go b/hugolib/page_permalink_test.go index be88c2faf..b20362d5e 100644 --- a/hugolib/page_permalink_test.go +++ b/hugolib/page_permalink_test.go @@ -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"},