shithub: hugo

Download patch

ref: 4c735a78782e5b2e488729fa895fc757fcd0a6ed
parent: 348e123c9fda4dc2b604b671653ee36035f141aa
author: Joel Scoble <[email protected]>
date: Thu Aug 21 14:01:34 EDT 2014

preserve alias case while lowercasing taxonomy

--- a/helpers/helpers_test.go
+++ b/helpers/helpers_test.go
@@ -40,11 +40,34 @@
 		input    string
 		expected string
 	}{
+		{"  Foo bar  ", "Foo-bar"},
+		{"Foo.Bar/foo_Bar-Foo", "Foo.Bar/foo_Bar-Foo"},
+		{"fOO,bar:foo%bAR", "fOObarfoobAR"},
+		{"FOo/BaR.html", "FOo/BaR.html"},
+		{"трям/трям", "трям/трям"},
+		{"은행","은행"},
+		{"Банковский кассир","Банковский-кассир"},
+	}
+
+	for _, test := range tests {
+		output := MakePath(test.input)
+		if output != test.expected {
+			t.Errorf("Expected %#v, got %#v\n", test.expected, output)
+		}
+	}
+}
+
+func TestMakeToLower(t *testing.T) {
+	tests := []struct {
+		input    string
+		expected string
+	}{
 		{"  foo bar  ", "foo-bar"},
 		{"foo.bar/foo_bar-foo", "foo.bar/foo_bar-foo"},
 		{"foo,bar:foo%bar", "foobarfoobar"},
 		{"foo/bar.html", "foo/bar.html"},
 		{"трям/трям", "трям/трям"},
+		{"은행","은행"},
 	}
 
 	for _, test := range tests {
--- a/helpers/path.go
+++ b/helpers/path.go
@@ -29,9 +29,18 @@
 var sanitizeRegexp = regexp.MustCompile("[^a-zA-Z0-9./_-]")
 
 // Take a string with any characters and replace it so the string could be used in a path.
-// E.g. Social Media -> social-media
+// MakePath creates a Unicode sanitized string, with the spaces replaced, whilst
+// preserving the original casing of the string.
+// E.g. Social Media -> Social-Media
 func MakePath(s string) string {
-	return UnicodeSanitize(strings.ToLower(strings.Replace(strings.TrimSpace(s), " ", "-", -1)))
+	return UnicodeSanitize(strings.Replace(strings.TrimSpace(s), " ", "-", -1))
+}
+
+// MakePathToLowerr creates a Unicode santized string, with the spaces replaced,
+// and transformed to lower case.
+// E.g. Social Media -> social-media
+func MakePathToLower(s string) string {
+        return UnicodeSanitize(strings.ToLower(strings.Replace(strings.TrimSpace(s), " ", "-", -1)))
 }
 
 func MakeTitle(inpath string) string {
--- a/hugolib/taxonomy.go
+++ b/hugolib/taxonomy.go
@@ -60,7 +60,7 @@
 
 // KeyPrep... Taxonomies should be case insensitive. Can make it easily conditional later.
 func kp(in string) string {
-	return helpers.MakePath(in)
+	return helpers.MakePathToLower(in)
 }
 
 func (i Taxonomy) Get(key string) WeightedPages { return i[kp(key)] }