slug package - github.com/gosimple/slug - Go Packages (original) (raw)
Package slug generate slug from unicode string, URL-friendly slugify with multiple languages support.
Example:
package main
import( "github.com/gosimple/slug" "fmt" )
func main () { text := slug.Make("Hellö Wörld хелло ворлд") fmt.Println(text) // Will print: "hello-world-khello-vorld"
someText := slug.Make("影師")
fmt.Println(someText) // Will print: "ying-shi"
enText := slug.MakeLang("This & that", "en")
fmt.Println(enText) // Will print: "this-and-that"
deText := slug.MakeLang("Diese & Dass", "de")
fmt.Println(deText) // Will print: "diese-und-dass"
slug.Lowercase = false // Keep uppercase characters
deUppercaseText := slug.MakeLang("Diese & Dass", "de")
fmt.Println(deUppercaseText) // Will print: "Diese-und-Dass"
slug.CustomSub = map[string]string{
"water": "sand",
}
textSub := slug.Make("water is hot")
fmt.Println(textSub) // Will print: "sand-is-hot"}
Requests or bugs?
https://github.com/gosimple/slug/issues
- Variables
- func IsSlug(text string) bool
- func Make(s string) (slug string)
- func MakeLang(s string, lang string) (slug string)
- func Substitute(s string, sub map[string]string) (buf string)
- func SubstituteRune(s string, sub map[rune]string) string
This section is empty.
IsSlug returns True if provided text does not contain white characters, punctuation, all letters are lower case and only from ASCII range. It could contain `-` and `_` but not at the beginning or end of the text. It should be in range of the MaxLength var if specified. All output from slug.Make(text) should pass this test.
Make returns slug generated from provided string. Will use "en" as language substitution.
MakeLang returns slug generated from provided string and will use provided language for chars substitution.
Substitute returns string with superseded all substrings from provided substitution map. Substitution map will be applied in alphabetic order. Many passes, on one substitution another one could apply.
SubstituteRune substitutes string chars with provided rune substitution map. One pass.
This section is empty.