From 86106d62c020c87232ffee817a68d6d68d25baf4 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 30 Mar 2025 21:08:36 +0800 Subject: [PATCH] :bug: Find-replace escaped characters will lose content https://github.com/siyuan-note/siyuan/issues/14438 --- kernel/model/search.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/model/search.go b/kernel/model/search.go index f93797634..51fc3cdbf 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -592,8 +592,12 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids unlinks = append(unlinks, n.Parent) prev, next := n.Parent.Previous, n.Parent.Next + for ; prev != nil && ast.NodeText == prev.Type && prev.Tokens == nil; prev = prev.Previous { + // Tokens 为空的节点是之前处理过的节点,需要跳过 + } if nil != prev && ast.NodeText == prev.Type && nil != next && ast.NodeText == next.Type { prev.Tokens = append(prev.Tokens, next.Tokens...) + next.Tokens = nil // 将 Tokens 设置为空,表示该节点已经被处理过 unlinks = append(unlinks, next) } } else {