From b6bd34ce32fb1bb51d43bb4dd6db106738ef9104 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 18 Dec 2024 18:17:58 +0800 Subject: [PATCH] :art: Improve tag escaping --- kernel/model/tag.go | 2 +- kernel/search/mark.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/model/tag.go b/kernel/model/tag.go index 856aff7dc..d6f425c63 100644 --- a/kernel/model/tag.go +++ b/kernel/model/tag.go @@ -328,7 +328,7 @@ func labelTags() (ret map[string]Tags) { tagSpans := sql.QueryTagSpans("") for _, tagSpan := range tagSpans { - label := tagSpan.Content + label := util.UnescapeHTML(tagSpan.Content) if _, ok := ret[label]; ok { ret[label] = append(ret[label], &Tag{}) } else { diff --git a/kernel/search/mark.go b/kernel/search/mark.go index 26a99b601..f248809f0 100644 --- a/kernel/search/mark.go +++ b/kernel/search/mark.go @@ -95,7 +95,7 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str if splitWords { wordBoundary = lex.IsASCIILetterNums(gulu.Str.ToBytes(k)) // Improve virtual reference split words https://github.com/siyuan-note/siyuan/issues/7833 } - k = regexp.QuoteMeta(k) + k = regexp.QuoteMeta(util.EscapeHTML(k)) re += "(" if wordBoundary { re += "\\b" @@ -110,10 +110,10 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str } } re += ")" - ret = text + ret = util.EscapeHTML(text) if reg, err := regexp.Compile(re); err == nil { - ret = reg.ReplaceAllStringFunc(text, func(s string) string { return openMark + util.EscapeHTML(s) + closeMark }) + ret = reg.ReplaceAllStringFunc(ret, func(s string) string { return openMark + s + closeMark }) } // 搜索结果预览包含转义符问题 Search results preview contains escape character issue https://github.com/siyuan-note/siyuan/issues/9790