Explorar o código

:art: Fill in the alt text after converting network images to local https://github.com/siyuan-note/siyuan/issues/10583

Daniel hai 1 ano
pai
achega
9a42f69ba6
Modificáronse 2 ficheiros con 15 adicións e 5 borrados
  1. 14 4
      kernel/model/assets.go
  2. 1 1
      kernel/model/import.go

+ 14 - 4
kernel/model/assets.go

@@ -103,6 +103,14 @@ func NetImg2LocalAssets(rootID, originalURL string) (err error) {
 		}
 		if ast.NodeImage == n.Type {
 			linkDest := n.ChildByType(ast.NodeLinkDest)
+			linkText := n.ChildByType(ast.NodeLinkText)
+			if nil == linkText {
+				linkText = &ast.Node{Type: ast.NodeLinkText, Tokens: []byte("image")}
+				if openBracket := n.ChildByType(ast.NodeOpenBracket); nil != openBracket {
+					openBracket.InsertAfter(linkText)
+				}
+			}
+
 			dest := linkDest.Tokens
 			if util.IsAssetLinkDest(dest) {
 				return ast.WalkSkipChildren
@@ -122,8 +130,9 @@ func NetImg2LocalAssets(rootID, originalURL string) (err error) {
 				}
 
 				name := filepath.Base(u)
-				name = util.FilterFileName(name)
+				name = util.FilterUploadFileName(name)
 				name = util.TruncateLenFileName(name)
+				linkText.Tokens = []byte(name)
 				name = "net-img-" + name
 				name = util.AssetName(name)
 				writePath := filepath.Join(assetsDirPath, name)
@@ -198,8 +207,9 @@ func NetImg2LocalAssets(rootID, originalURL string) (err error) {
 					}
 				}
 				name = strings.TrimSuffix(name, ext)
-				name = util.FilterFileName(name)
+				name = util.FilterUploadFileName(name)
 				name = util.TruncateLenFileName(name)
+				linkText.Tokens = []byte(name)
 				name = "net-img-" + name + "-" + ast.NewNodeID() + ext
 				writePath := filepath.Join(assetsDirPath, name)
 				if err = filelock.WriteFile(writePath, data); nil != err {
@@ -285,7 +295,7 @@ func NetAssets2LocalAssets(rootID string) (err error) {
 			}
 
 			name := filepath.Base(u)
-			name = util.FilterFileName(name)
+			name = util.FilterUploadFileName(name)
 			name = util.TruncateLenFileName(name)
 			name = "network-asset-" + name
 			name = util.AssetName(name)
@@ -375,7 +385,7 @@ func NetAssets2LocalAssets(rootID string) (err error) {
 				}
 			}
 			name = strings.TrimSuffix(name, ext)
-			name = util.FilterFileName(name)
+			name = util.FilterUploadFileName(name)
 			name = util.TruncateLenFileName(name)
 			name = "network-asset-" + name + "-" + ast.NewNodeID() + ext
 			writePath := filepath.Join(assetsDirPath, name)

+ 1 - 1
kernel/model/import.go

@@ -951,7 +951,7 @@ func processBase64Img(n *ast.Node, dest string, assetDirPath string, err error)
 	if nil != alt {
 		name = alt.TokensStr() + ext
 	}
-	name = util.FilterFileName(name)
+	name = util.FilterUploadFileName(name)
 	name = util.AssetName(name)
 
 	tmp := filepath.Join(base64TmpDir, name)