From f2bc4b015f62980c43bcf6e3cba9fa4eb3ec0a2b Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Fri, 3 Sep 2021 17:43:59 +0200 Subject: [PATCH] fic: Replace accentuated letters by non-accentuated ones --- libfic/utils.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/libfic/utils.go b/libfic/utils.go index d473b95a..b58d86f9 100644 --- a/libfic/utils.go +++ b/libfic/utils.go @@ -9,6 +9,41 @@ import ( // ToURLid converts the given string to a valid URLid. func ToURLid(str string) string { + re_a := regexp.MustCompile("[áàâäā]") + str = re_a.ReplaceAllLiteralString(str, "a") + re_A := regexp.MustCompile("[ÀÁÂÄĀ]") + str = re_A.ReplaceAllLiteralString(str, "A") + + re_e := regexp.MustCompile("[éèêëȩē]") + str = re_e.ReplaceAllLiteralString(str, "e") + re_E := regexp.MustCompile("[ÉÈÊËĒ]") + str = re_E.ReplaceAllLiteralString(str, "E") + + re_i := regexp.MustCompile("[íìîïī]") + str = re_i.ReplaceAllLiteralString(str, "i") + re_I := regexp.MustCompile("[ÌÍÎÏĪ]") + str = re_I.ReplaceAllLiteralString(str, "I") + + re_o := regexp.MustCompile("[òóôöō]") + str = re_o.ReplaceAllLiteralString(str, "o") + re_O := regexp.MustCompile("[ÒÓÔÖŌ]") + str = re_O.ReplaceAllLiteralString(str, "O") + + re_oe := regexp.MustCompile("[œ]") + str = re_oe.ReplaceAllLiteralString(str, "oe") + re_OE := regexp.MustCompile("[Œ]") + str = re_OE.ReplaceAllLiteralString(str, "OE") + + re_u := regexp.MustCompile("[ùúûüū]") + str = re_u.ReplaceAllLiteralString(str, "u") + re_U := regexp.MustCompile("[ÙÚÛÜŪ]") + str = re_U.ReplaceAllLiteralString(str, "U") + + re_y := regexp.MustCompile("[ỳýŷÿȳ]") + str = re_y.ReplaceAllLiteralString(str, "y") + re_Y := regexp.MustCompile("[ỲÝŶŸȲ]") + str = re_Y.ReplaceAllLiteralString(str, "Y") + re := regexp.MustCompile("[^a-zA-Z0-9]+") return strings.TrimSuffix(re.ReplaceAllLiteralString(str, "-"), "-") }