mirror of
https://gitea.com/gitea/tea.git
synced 2024-11-23 02:51:37 +01:00
0a5cdd60ac
Merge branch 'master' into update-cli-lib2 [Vendor] Update stretchr/testify v1.3.0 -> v1.4.0 (#83) update github.com/stretchr/testify v1.3.0 -> v1.4.0 Co-authored-by: 6543 <6543@obermui.de> Reviewed-by: techknowlogick <techknowlogick@gitea.io> Reviewed-by: sapk <sapk@noreply.gitea.io> Reviewed-by: appleboy <appleboy.tw@gmail.com> Update urfave/cli v1.20.0 -> v1.22.2 Co-authored-by: 6543 <6543@obermui.de> Reviewed-by: mrsdizzie <info@mrsdizzie.com> Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
30 lines
899 B
Go
30 lines
899 B
Go
// Package sanitized_anchor_name provides a func to create sanitized anchor names.
|
|
//
|
|
// Its logic can be reused by multiple packages to create interoperable anchor names
|
|
// and links to those anchors.
|
|
//
|
|
// At this time, it does not try to ensure that generated anchor names
|
|
// are unique, that responsibility falls on the caller.
|
|
package sanitized_anchor_name // import "github.com/shurcooL/sanitized_anchor_name"
|
|
|
|
import "unicode"
|
|
|
|
// Create returns a sanitized anchor name for the given text.
|
|
func Create(text string) string {
|
|
var anchorName []rune
|
|
var futureDash = false
|
|
for _, r := range text {
|
|
switch {
|
|
case unicode.IsLetter(r) || unicode.IsNumber(r):
|
|
if futureDash && len(anchorName) > 0 {
|
|
anchorName = append(anchorName, '-')
|
|
}
|
|
futureDash = false
|
|
anchorName = append(anchorName, unicode.ToLower(r))
|
|
default:
|
|
futureDash = true
|
|
}
|
|
}
|
|
return string(anchorName)
|
|
}
|