ref: 36adb5fb883bb7170d062334f8aaa64ed191be68
parent: 9d603ce88a7067ac794e2f1e0bd8313308cd9281
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Sun Oct 18 06:36:27 EDT 2015
Preserve Unicode marks in MakePath Fixes #1488
--- a/helpers/path.go
+++ b/helpers/path.go
@@ -96,7 +96,7 @@
target := make([]rune, 0, len(source))
for _, r := range source {- if unicode.IsLetter(r) || unicode.IsDigit(r) || r == '.' || r == '/' || r == '\\' || r == '_' || r == '-' || r == '#' {+ if unicode.IsLetter(r) || unicode.IsDigit(r) || unicode.IsMark(r) || r == '.' || r == '/' || r == '\\' || r == '_' || r == '-' || r == '#' {target = append(target, r)
}
}
--- a/helpers/path_test.go
+++ b/helpers/path_test.go
@@ -19,22 +19,25 @@
func TestMakePath(t *testing.T) {viper.Reset()
defer viper.Reset()
- viper.Set("RemovePathAccents", true) tests := []struct {- input string
- expected string
+ input string
+ expected string
+ removeAccents bool
}{- {" 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"},- {"трям/трям", "трям/трям"},- {"은행", "은행"},- {"Банковский кассир", "Банковскии-кассир"},+ {" Foo bar ", "Foo-bar", true},+ {"Foo.Bar/foo_Bar-Foo", "Foo.Bar/foo_Bar-Foo", true},+ {"fOO,bar:foo%bAR", "fOObarfoobAR", true},+ {"FOo/BaR.html", "FOo/BaR.html", true},+ {"трям/трям", "трям/трям", true},+ {"은행", "은행", true},+ {"Банковский кассир", "Банковскии-кассир", true},+ // Issue #1488
+ {"संस्कृत", "संस्कृत", false},}
for _, test := range tests {+ viper.Set("RemovePathAccents", test.removeAccents)output := MakePath(test.input)
if output != test.expected { t.Errorf("Expected %#v, got %#v\n", test.expected, output)--
⑨