summaryrefslogtreecommitdiffstats
path: root/helpers
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2015-10-18 10:36:27 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2015-10-18 10:36:27 +0200
commit36adb5fb883bb7170d062334f8aaa64ed191be68 (patch)
treec7bf814a710c3ccb2a4c50689e8ca383daa28a30 /helpers
parent9d603ce88a7067ac794e2f1e0bd8313308cd9281 (diff)
Preserve Unicode marks in MakePath
Fixes #1488
Diffstat (limited to 'helpers')
-rw-r--r--helpers/path.go2
-rw-r--r--helpers/path_test.go23
2 files changed, 14 insertions, 11 deletions
diff --git a/helpers/path.go b/helpers/path.go
index 9ead807c7..018c6fecb 100644
--- a/helpers/path.go
+++ b/helpers/path.go
@@ -96,7 +96,7 @@ func UnicodeSanitize(s string) string {
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)
}
}
diff --git a/helpers/path_test.go b/helpers/path_test.go
index 95171165f..9534cf9c1 100644
--- a/helpers/path_test.go
+++ b/helpers/path_test.go
@@ -19,22 +19,25 @@ import (
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)