From 65fbfc5a1f11997fd6baa91bdc9dbd778d6d923d Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 17 Dec 2023 22:15:02 +0800 Subject: [PATCH] :art: Find replace supports selecting element types https://github.com/siyuan-note/siyuan/issues/9895 --- kernel/api/search.go | 4 ++-- kernel/model/search.go | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/kernel/api/search.go b/kernel/api/search.go index 69613e520..d4d42b520 100644 --- a/kernel/api/search.go +++ b/kernel/api/search.go @@ -83,8 +83,8 @@ func findReplace(c *gin.Context) { } replaceTypes := map[string]bool{} - // text, img-text, img-title, img-src, a-text, a-title, a-href, code, em, strong, inline-math, inline-memo, kbd, mark, s, sub, sup, tag, u - // doc-title, code-block, math-block, html-block + // text, imgText, imgTitle, imgSrc, aText, aTitle, aHref, code, em, strong, inlineMath, inlineMemo, kbd, mark, s, sub, sup, tag, u + // docTitle, codeBlock, mathBlock, htmlBlock if nil != arg["replaceTypes"] { replaceTypesArg := arg["replaceTypes"].(map[string]interface{}) for t, b := range replaceTypesArg { diff --git a/kernel/model/search.go b/kernel/model/search.go index 18f1e5545..b561217f1 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -353,7 +353,7 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids } if ast.NodeDocument == node.Type { - if !replaceTypes["doc-title"] { + if !replaceTypes["docTitle"] { continue } @@ -383,37 +383,37 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids replaceNodeTokens(n, method, keyword, replacement, r) case ast.NodeLinkDest: - if !replaceTypes["img-src"] { + if !replaceTypes["imgSrc"] { return ast.WalkContinue } replaceNodeTokens(n, method, keyword, replacement, r) case ast.NodeLinkText: - if !replaceTypes["img-text"] { + if !replaceTypes["imgText"] { return ast.WalkContinue } replaceNodeTokens(n, method, keyword, replacement, r) case ast.NodeLinkTitle: - if !replaceTypes["img-title"] { + if !replaceTypes["imgTitle"] { return ast.WalkContinue } replaceNodeTokens(n, method, keyword, replacement, r) case ast.NodeCodeBlockCode: - if !replaceTypes["code-block"] { + if !replaceTypes["codeBlock"] { return ast.WalkContinue } replaceNodeTokens(n, method, keyword, replacement, r) case ast.NodeMathBlockContent: - if !replaceTypes["math-block"] { + if !replaceTypes["mathBlock"] { return ast.WalkContinue } replaceNodeTokens(n, method, keyword, replacement, r) case ast.NodeHTMLBlock: - if !replaceTypes["html-block"] { + if !replaceTypes["htmlBlock"] { return ast.WalkContinue } @@ -434,7 +434,7 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids } } } else if n.IsTextMarkType("a") { - if replaceTypes["a-text"] { + if replaceTypes["aText"] { if 0 == method { if bytes.Contains(n.Tokens, []byte(keyword)) { n.TextMarkTextContent = strings.ReplaceAll(n.TextMarkTextContent, keyword, replacement) @@ -446,7 +446,7 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids } } - if replaceTypes["a-title"] { + if replaceTypes["aTitle"] { if 0 == method { if strings.Contains(n.TextMarkATitle, keyword) { n.TextMarkATitle = strings.ReplaceAll(n.TextMarkATitle, keyword, replacement) @@ -458,7 +458,7 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids } } - if replaceTypes["a-href"] { + if replaceTypes["aHref"] { if 0 == method { if strings.Contains(n.TextMarkAHref, keyword) { n.TextMarkAHref = strings.ReplaceAll(n.TextMarkAHref, keyword, replacement) @@ -524,8 +524,8 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids } replaceNodeTextMarkTextContent(n, method, keyword, replacement, r) - } else if n.IsTextMarkType("inline-math") { - if !replaceTypes["inline-math"] { + } else if n.IsTextMarkType("inlineMath") { + if !replaceTypes["inlineMath"] { return ast.WalkContinue } @@ -538,8 +538,8 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids n.TextMarkInlineMathContent = r.ReplaceAllString(n.TextMarkInlineMathContent, replacement) } } - } else if n.IsTextMarkType("inline-memo") { - if !replaceTypes["inline-memo"] { + } else if n.IsTextMarkType("inlineMemo") { + if !replaceTypes["inlineMemo"] { return ast.WalkContinue }