fixes
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"strings"
|
||||
"unicode"
|
||||
|
||||
"git.ma-al.com/goc_daniel/b2b/app/db"
|
||||
constdata "git.ma-al.com/goc_daniel/b2b/app/utils/const_data"
|
||||
"github.com/dlclark/regexp2"
|
||||
"golang.org/x/text/runes"
|
||||
@@ -22,7 +23,7 @@ func SanitizeSlug(s string) string {
|
||||
s = strings.TrimSpace(strings.ToLower(s))
|
||||
|
||||
// First apply explicit transliteration for language-specific letters.
|
||||
s = transliterateWithTable(s)
|
||||
s = transliterateSlug(s)
|
||||
|
||||
// Then normalize and strip any remaining combining marks.
|
||||
s = removeDiacritics(s)
|
||||
@@ -40,19 +41,17 @@ func SanitizeSlug(s string) string {
|
||||
return s
|
||||
}
|
||||
|
||||
func transliterateWithTable(s string) string {
|
||||
var b strings.Builder
|
||||
b.Grow(len(s))
|
||||
func transliterateSlug(s string) string {
|
||||
var cleared string
|
||||
|
||||
for _, r := range s {
|
||||
if repl, ok := constdata.TRANSLITERATION_TABLE[r]; ok {
|
||||
b.WriteString(repl)
|
||||
} else {
|
||||
b.WriteRune(r)
|
||||
}
|
||||
err := db.DB.Raw("SELECT slugify_eu(?)", s).Scan(&cleared).Error
|
||||
if err != nil {
|
||||
// log error
|
||||
_ = err
|
||||
return s
|
||||
}
|
||||
|
||||
return b.String()
|
||||
return cleared
|
||||
}
|
||||
|
||||
func removeDiacritics(s string) string {
|
||||
|
||||
Reference in New Issue
Block a user