package template import ( "regexp" "strings" "github.com/rainycape/unidecode" ) var ( nonValidChars = regexp.MustCompile("[^a-z0-9-_]") multipleDashes = regexp.MustCompile("-+") ) func Slugify(s string) (slug string) { slug = strings.TrimSpace(s) slug = unidecode.Unidecode(slug) slug = strings.ToLower(slug) slug = nonValidChars.ReplaceAllString(slug, "-") slug = multipleDashes.ReplaceAllString(slug, "-") slug = strings.Trim(slug, "-_") return slug }