From 9c28056204f9e0ec27d43014a60e46e0f969e4a9 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 21 Jan 2024 10:46:35 +0800 Subject: [PATCH] :bug: Repeated escaping in preview area when searching for matching doc blocks https://github.com/siyuan-note/siyuan/issues/10219 --- kernel/util/misc.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/kernel/util/misc.go b/kernel/util/misc.go index 768a7bb18..b15015c95 100644 --- a/kernel/util/misc.go +++ b/kernel/util/misc.go @@ -43,14 +43,10 @@ func RemoveElem[T any](s []T, index int) []T { } func EscapeHTML(s string) string { - if strings.Contains(s, "&") { + if ContainsSubStr(s, []string{"&", "'", "<", ">", """, " "}) { return s } - - if strings.ContainsAny(s, "<>\"'&") { - return html.EscapeString(s) - } - return s + return html.EscapeString(s) } func Reverse(s string) string { @@ -92,3 +88,12 @@ func IsNumeric(s string) bool { _, err := strconv.ParseFloat(s, 64) return err == nil } + +func ContainsSubStr(s string, subStrs []string) bool { + for _, v := range subStrs { + if strings.Contains(s, v) { + return true + } + } + return false +}