🎨 Improve converting network assets to local assets https://github.com/siyuan-note/siyuan/issues/15320

This commit is contained in:
Daniel 2025-07-20 10:05:13 +08:00
parent 5d229eb589
commit 513aadb9d5
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 17 additions and 1 deletions

View file

@ -285,7 +285,7 @@ func NetAssets2LocalAssets(rootID string, onlyImg bool, originalURL string) (err
name, _ = url.PathUnescape(name) name, _ = url.PathUnescape(name)
name = util.FilterUploadFileName(name) name = util.FilterUploadFileName(name)
ext := util.Ext(name) ext := util.Ext(name)
if "" == ext { if !util.IsCommonExt(ext) {
if mtype := mimetype.Detect(data); nil != mtype { if mtype := mimetype.Detect(data); nil != mtype {
ext = mtype.Extension() ext = mtype.Extension()
name += ext name += ext

View file

@ -148,6 +148,22 @@ func RemoveID(name string) string {
return name + ext return name + ext
} }
var commonSuffixes = []string{
".jpg", ".jpeg", ".png", ".gif", ".bmp", ".svg", ".webp", ".tiff",
".txt", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".md", ".rtf",
".zip", ".rar", ".7z", ".tar", ".gz", ".bz2",
".mp3", ".wav", ".aac", ".flac", ".ogg", ".m4a",
".mp4", ".avi", ".mkv", ".mov", ".wmv", ".flv",
".exe", ".bat", ".sh", ".app",
".js", ".ts", ".html", ".css", ".go", ".py", ".java", ".c", ".cpp", ".json", ".xml", ".yaml", ".toml",
".sql", ".db", ".sqlite", ".csv",
".iso", ".dmg", ".apk", ".bin",
}
func IsCommonExt(ext string) bool {
return strings.HasPrefix(ext, ".") && gulu.Str.Contains(strings.ToLower(ext), commonSuffixes)
}
func Ext(name string) (ret string) { func Ext(name string) (ret string) {
ret = path.Ext(name) ret = path.Ext(name)
if "." == ret { if "." == ret {