🎨 Improve find-replace of image/link elements https://github.com/siyuan-note/siyuan/issues/14049

This commit is contained in:
Daniel 2025-02-16 16:49:21 +08:00
parent d97899668b
commit c36b2a4fdc
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017

View File

@ -118,7 +118,7 @@ func ListInvalidBlockRefs(page, pageSize int) (ret []*Block, matchedBlockCount,
} }
var toRemoves []string var toRemoves []string
for defID, _ := range invalidDefIDs { for defID := range invalidDefIDs {
if _, ok := blockMap[defID]; ok { if _, ok := blockMap[defID]; ok {
toRemoves = append(toRemoves, defID) toRemoves = append(toRemoves, defID)
} }
@ -148,7 +148,7 @@ func ListInvalidBlockRefs(page, pageSize int) (ret []*Block, matchedBlockCount,
delete(refBlockMap, toRemove) delete(refBlockMap, toRemove)
} }
for refID, _ := range refBlockMap { for refID := range refBlockMap {
invalidBlockIDs = append(invalidBlockIDs, refID) invalidBlockIDs = append(invalidBlockIDs, refID)
} }
invalidBlockIDs = gulu.Str.RemoveDuplicatedElem(invalidBlockIDs) invalidBlockIDs = gulu.Str.RemoveDuplicatedElem(invalidBlockIDs)
@ -596,6 +596,9 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids
} }
replaceNodeTokens(n, method, keyword, strings.TrimSpace(replacement), r) replaceNodeTokens(n, method, keyword, strings.TrimSpace(replacement), r)
if 1 > len(n.Tokens) {
unlinks = append(unlinks, n.Parent)
}
case ast.NodeLinkText: case ast.NodeLinkText:
if !replaceTypes["imgText"] { if !replaceTypes["imgText"] {
return ast.WalkContinue return ast.WalkContinue
@ -683,6 +686,10 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids
n.TextMarkAHref = r.ReplaceAllString(n.TextMarkAHref, strings.TrimSpace(replacement)) n.TextMarkAHref = r.ReplaceAllString(n.TextMarkAHref, strings.TrimSpace(replacement))
} }
} }
if "" == n.TextMarkAHref {
unlinks = append(unlinks, n)
}
} }
} else if n.IsTextMarkType("em") { } else if n.IsTextMarkType("em") {
if !replaceTypes["em"] { if !replaceTypes["em"] {