package slug import ( "regexp" "strings" ) const ( DefaultLimit = 80 ) var invalidChars = regexp.MustCompile(`[^a-z0-9]+`) func Normalize(s string) string { return NormalizeWithLimit(s, DefaultLimit) } func NormalizeWithLimit(s string, limit int) string { s = strings.ToLower(strings.TrimSpace(s)) s = invalidChars.ReplaceAllString(s, "-") s = strings.Trim(s, "-") if limit > 0 && len(s) > limit { s = strings.Trim(s[:limit], "-") } return s }