chore(repo): reinitialize repository
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package slug
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestNormalize(t *testing.T) {
|
||||
got := Normalize(" Product Prompt V2 / Main ")
|
||||
if got != "product-prompt-v2-main" {
|
||||
t.Fatalf("Normalize() = %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNormalizeWithLimit(t *testing.T) {
|
||||
got := NormalizeWithLimit("abcdefghijklmnopqrstuvwxyz", 10)
|
||||
if got != "abcdefghij" {
|
||||
t.Fatalf("NormalizeWithLimit() = %q", got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user