Skip to content

Commit 59c4794

Browse files
committed
🐛 Unable to find-replace tag #14588
1 parent c3517f4 commit 59c4794

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

kernel/model/search.go

+22-8
Original file line numberDiff line numberDiff line change
@@ -554,25 +554,41 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids
554554
}
555555

556556
reloadTreeIDs = append(reloadTreeIDs, tree.ID)
557-
558557
if ast.NodeDocument == node.Type {
559558
if !replaceTypes["docTitle"] {
560559
continue
561560
}
562561

563562
title := node.IALAttr("title")
563+
tags := node.IALAttr("tags")
564564
if 0 == method {
565565
if strings.Contains(title, keyword) {
566-
docTitleReplacement := strings.ReplaceAll(replacement, "/", "")
566+
docTitleReplacement := strings.ReplaceAll(replacement, "/", "")
567567
renameRootTitles[node.ID] = strings.ReplaceAll(title, keyword, docTitleReplacement)
568568
renameRoots = append(renameRoots, node)
569569
}
570+
571+
if strings.Contains(tags, keyword) {
572+
replacement = strings.TrimPrefix(replacement, "#")
573+
replacement = strings.TrimSuffix(replacement, "#")
574+
tags = strings.ReplaceAll(tags, keyword, replacement)
575+
node.SetIALAttr("tags", tags)
576+
ReloadTag()
577+
}
570578
} else if 3 == method {
571579
if nil != r && r.MatchString(title) {
572-
docTitleReplacement := strings.ReplaceAll(replacement, "/", "")
580+
docTitleReplacement := strings.ReplaceAll(replacement, "/", "")
573581
renameRootTitles[node.ID] = r.ReplaceAllString(title, docTitleReplacement)
574582
renameRoots = append(renameRoots, node)
575583
}
584+
585+
if nil != r && r.MatchString(tags) {
586+
replacement = strings.TrimPrefix(replacement, "#")
587+
replacement = strings.TrimSuffix(replacement, "#")
588+
tags = r.ReplaceAllString(tags, replacement)
589+
node.SetIALAttr("tags", tags)
590+
ReloadTag()
591+
}
576592
}
577593
} else {
578594
var unlinks []*ast.Node
@@ -905,14 +921,12 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids
905921
for _, unlink := range unlinks {
906922
unlink.Unlink()
907923
}
908-
909-
if err = writeTreeUpsertQueue(tree); err != nil {
910-
return
911-
}
912924
}
913925

926+
if err = writeTreeUpsertQueue(tree); err != nil {
927+
return
928+
}
914929
updateNodes[id] = node
915-
916930
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(206), i+1, len(ids)))
917931
}
918932

0 commit comments

Comments
 (0)