slug alternatives and similar packages
Based on the "blackfriday" category.
Alternatively, view slug alternatives based on common mentions on social networks and blogs.
-
bluemonday
bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS -
mxj
Decode / encode XML to/from map[string]interface{} (or JSON); extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. -
go-pkg-rss
DISCONTINUED. This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs. -
github_flavored_markdown
GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. -
go-pkg-xmlx
DISCONTINUED. Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions.
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of slug or a related project?
Popular Comparisons
README
slug
Package slug
generate slug from Unicode string, URL-friendly slugify with
multiple languages support.
Example
package main
import (
"fmt"
"github.com/gosimple/slug"
)
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"
}
Design
This library will always returns clean output from any Unicode string containing only the following ASCII characters:
- numbers:
0-9
- small letters:
a-z
- big letters:
A-Z
(only if you setLowercase
tofalse
) - minus sign:
-
- underscore:
_
Minus sign and underscore characters will never appear at the beginning or the end of the returned string.
Thanks to context-insensitive transliteration of Unicode characters to ASCII output returned string is safe for URL slugs and filenames.
Requests or bugs?
https://github.com/gosimple/slug/issues
If your language is missing you could add it in languages_substitution.go
file.
In case of missing proper Unicode characters transliteration to ASCII you could add them to underlying library: https://github.com/gosimple/unidecode.
Installation
go get -u github.com/gosimple/slug
Benchmarking
go test -run=NONE -bench=. -benchmem -count=6 ./... > old.txt
# make changes
go test -run=NONE -bench=. -benchmem -count=6 ./... > new.txt
go install golang.org/x/perf/cmd/benchstat@latest
benchstat old.txt new.txt
License
The source files are distributed under the Mozilla Public License, version 2.0, unless otherwise noted. Please read the FAQ if you have further questions regarding the license.
*Note that all licence references and agreements mentioned in the slug README section above
are relevant to that project's source code only.