gitea-tea/vendor/github.com/shurcooL/sanitized_anchor_name/main.go
6543 0a5cdd60ac [Vendor] Update urfave/cli v1.20.0 -> v1.22.2 (#84)
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>
2020-01-04 04:45:36 +00:00

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)
}