slug 介绍

slug 在不同的场景有不同的意义,在 URL 中表示一种用于描述资源的短简洁易于理解的资源描述符,在数据库系统中还可以用于描述资源的唯一标识符,总的来说 slug 可以用来标识和描述资源的文本标识符,有很好的可读性和唯一性。

本文将介绍 golang 中如何根据字符串生成相应的 slug 文本。

安装

执行 go get -u github.com/gosimple/slug 来安装 slug

使用

先介绍 slug 库的基础使用方法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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)
}

运行后:

1
2
overstarry-home
text-generate

除了基础的转换功能,slug 还支持将不同的语言进行转换,查看下面的例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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) 
}
1
2
3
4
5
overstarry-home
text-generate
hello-world-khello-vorld
ping-guo
this-and-that

如果想要保留大写字母,可以设置 slug.Lowercase 参数来实现。如果想实现自定义的替换可以使用 slug.CustomSub 来实现。

参考