25 May 2024
#slug 介绍
slug 在不同的场景有不同的意义,在 URL 中表示一种用于描述资源的短简洁易于理解的资源描述符,在数据库系统中还可以用于描述资源的唯一标识符,总的来说 slug 可以用来标识和描述资源的文本标识符,有很好的可读性和唯一性。
本文将介绍 golang 中如何根据字符串生成相应的 slug 文本。
执行 go get -u github.com/gosimple/slug
来安装 slug
先介绍 slug 库的基础使用方法:
package main
import (
"fmt"
"github.com/gosimple/slug"
)
func main() {
text := slug.Make("overstarry home")
fmt.Println(text)
text = slug.Make("text generate")
fmt.Println(text)
}
运行后:
overstarry-home
text-generate
除了基础的转换功能,slug 还支持将不同的语言进行转换,查看下面的例子:
func main() {
text := slug.Make("overstarry home")
fmt.Println(text)
text = slug.Make("text generate")
fmt.Println(text)
text = slug.Make("Hellö Wörld хелло ворлд")
fmt.Println(text)
someText := slug.Make("影師")
fmt.Println(someText)
enText := slug.MakeLang("This & that", "en")
fmt.Println(enText)
}
overstarry-home
text-generate
hello-world-khello-vorld
ping-guo
this-and-that
如果想要保留大写字母,可以设置 slug.Lowercase 参数来实现。如果想实现自定义的替换可以使用 slug.CustomSub 来实现。
- https://pkg.go.dev/github.com/gosimple/slug
- https://www.practical-go-lessons.com/post/how-to-create-a-slug-with-go-c9msh2glarts70kje1ag
- https://github.com/gosimple/slug