部署脚本
This commit is contained in:
@@ -126,6 +126,37 @@ func MakeRandomSlug(exists func(string) bool) string {
|
||||
}
|
||||
}
|
||||
|
||||
// GetSlugAbbr 取标题的拼音首字母缩写(中文每字取首字母,英文每词取首字母),全小写。
|
||||
func GetSlugAbbr(text string) string {
|
||||
s := strings.ToLower(slug.Make(text))
|
||||
var b strings.Builder
|
||||
newWord := true
|
||||
for _, r := range s {
|
||||
if r == '-' || r == '_' {
|
||||
newWord = true
|
||||
continue
|
||||
}
|
||||
if newWord && ((r >= 'a' && r <= 'z') || (r >= '0' && r <= '9')) {
|
||||
b.WriteRune(r)
|
||||
newWord = false
|
||||
}
|
||||
}
|
||||
return b.String()
|
||||
}
|
||||
|
||||
// MakeAbbrSlug 优先按标题拼音首字母缩写生成 slug;缩写为空或全数字时回退 5 位随机字母,碰撞时追加 3 位随机字母。
|
||||
func MakeAbbrSlug(source string, exists func(string) bool) string {
|
||||
abbr := GetSlugAbbr(source)
|
||||
if abbr == "" || IsSlugAllDigits(abbr) {
|
||||
abbr = strings.ToLower(GetRandomLetters(5))
|
||||
}
|
||||
final := abbr
|
||||
for exists(final) {
|
||||
final = abbr + strings.ToLower(GetRandomLetters(3))
|
||||
}
|
||||
return final
|
||||
}
|
||||
|
||||
// MakeUniqueSlug 生成唯一 slug;exists 返回 true 表示已被占用。生成结果不能全是数字。
|
||||
func MakeUniqueSlug(source string, exists func(string) bool) string {
|
||||
pinyin := GetSlugInfo(source)
|
||||
|
||||
Reference in New Issue
Block a user