完善后台的图标库引用逻辑和在线图标库的引用
This commit is contained in:
@@ -3,9 +3,17 @@ package api
|
||||
import (
|
||||
"net/url"
|
||||
"path"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const maxIconValueLength = 160
|
||||
|
||||
var (
|
||||
legacyIconPattern = regexp.MustCompile(`^[A-Za-z0-9_-]+(?:\s+[A-Za-z0-9_-]+)*$`)
|
||||
iconifyValuePattern = regexp.MustCompile(`^iconify:[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9]+(?:-[a-z0-9]+)*$`)
|
||||
)
|
||||
|
||||
func validHTTPURL(value string) bool {
|
||||
parsed, err := url.ParseRequestURI(strings.TrimSpace(value))
|
||||
return err == nil && parsed.Host != "" && (parsed.Scheme == "http" || parsed.Scheme == "https")
|
||||
@@ -30,3 +38,14 @@ func validQRCode(value string) bool {
|
||||
}
|
||||
return validHTTPURL(value)
|
||||
}
|
||||
|
||||
func validIconValue(value string) bool {
|
||||
value = strings.TrimSpace(value)
|
||||
if value == "" || len(value) > maxIconValueLength {
|
||||
return false
|
||||
}
|
||||
if strings.HasPrefix(value, "iconify:") {
|
||||
return iconifyValuePattern.MatchString(value)
|
||||
}
|
||||
return legacyIconPattern.MatchString(value)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user