Make removal of accents in taxonomy and section paths optional

And default off.

Fixes #1180
This commit is contained in:
Bjørn Erik Pedersen 2015-06-16 19:25:48 +02:00
parent 847ad36e45
commit 4b7c1342fd
3 changed files with 17 additions and 5 deletions

View file

@ -141,6 +141,7 @@ func LoadDefaultSettings() {
viper.SetDefault("IgnoreCache", false)
viper.SetDefault("CanonifyURLs", false)
viper.SetDefault("RelativeURLs", false)
viper.SetDefault("RemovePathAccents", false)
viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"})
viper.SetDefault("Permalinks", make(hugolib.PermalinkOverrides, 0))
viper.SetDefault("Sitemap", hugolib.Sitemap{Priority: -1})
@ -192,7 +193,7 @@ func InitializeConfig() {
if hugoCmdV.PersistentFlags().Lookup("disableSitemap").Changed {
viper.Set("DisableSitemap", DisableSitemap)
}
if hugoCmdV.PersistentFlags().Lookup("verbose").Changed {
viper.Set("Verbose", Verbose)
}

View file

@ -99,9 +99,16 @@ func UnicodeSanitize(s string) string {
}
}
// remove accents - see https://blog.golang.org/normalization
t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
result, _, _ := transform.String(t, string(target))
var result string
if viper.GetBool("RemovePathAccents") {
// remove accents - see https://blog.golang.org/normalization
t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
result, _, _ = transform.String(t, string(target))
} else {
result = string(target)
}
return result
return string(target)

View file

@ -17,6 +17,10 @@ import (
)
func TestMakePath(t *testing.T) {
viper.Reset()
defer viper.Reset()
viper.Set("RemovePathAccents", true)
tests := []struct {
input string
expected string
@ -717,7 +721,7 @@ func TestGetTempDir(t *testing.T) {
{testDir + "FOo/BaR.html", dir + testDir + "FOo/BaR.html" + FilePathSeparator},
{testDir + "трям/трям", dir + testDir + "трям/трям" + FilePathSeparator},
{testDir + "은행", dir + testDir + "은행" + FilePathSeparator},
{testDir + "Банковский кассир", dir + testDir + "Банковскии-кассир" + FilePathSeparator},
{testDir + "Банковский кассир", dir + testDir + "Банковский-кассир" + FilePathSeparator},
}
for _, test := range tests {