forked from forgejo/forgejo
Make user-content-*
consistent with github (#26388)
Fix #26367 Related #19745 Thanks @lazyky for providing test cases
This commit is contained in:
parent
220f236ff5
commit
d41aee1d1e
2 changed files with 64 additions and 9 deletions
|
@ -29,17 +29,12 @@ func CleanValue(value []byte) []byte {
|
|||
value = bytes.TrimSpace(value)
|
||||
rs := bytes.Runes(value)
|
||||
result := make([]rune, 0, len(rs))
|
||||
needsDash := false
|
||||
for _, r := range rs {
|
||||
switch {
|
||||
case unicode.IsLetter(r) || unicode.IsNumber(r) || r == '_':
|
||||
if needsDash && len(result) > 0 {
|
||||
result = append(result, '-')
|
||||
}
|
||||
needsDash = false
|
||||
if unicode.IsLetter(r) || unicode.IsNumber(r) || r == '_' || r == '-' {
|
||||
result = append(result, unicode.ToLower(r))
|
||||
default:
|
||||
needsDash = true
|
||||
}
|
||||
if unicode.IsSpace(r) {
|
||||
result = append(result, '-')
|
||||
}
|
||||
}
|
||||
return []byte(string(result))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue