From 3d0b3c5ac91dc42f39151d07d5290434d6cadb6d Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 1 May 2023 14:15:00 +0800 Subject: [PATCH] :bug: The keyboard element is highlighted incorrectly in backlink mentions Fix https://github.com/siyuan-note/siyuan/issues/8143 --- kernel/model/virutalref.go | 8 ++++++++ kernel/search/mark.go | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/kernel/model/virutalref.go b/kernel/model/virutalref.go index 5c1c8698c..29a893e52 100644 --- a/kernel/model/virutalref.go +++ b/kernel/model/virutalref.go @@ -232,6 +232,14 @@ func getVirtualRefKeywords(docName string) (ret []string) { func prepareMarkKeywords(keywords []string) (ret []string) { ret = gulu.Str.RemoveDuplicatedElem(keywords) + var tmp []string + for _, k := range ret { + if "" != k { + tmp = append(tmp, k) + } + } + ret = tmp + sort.SliceStable(ret, func(i, j int) bool { return len(ret[i]) > len(ret[j]) }) diff --git a/kernel/search/mark.go b/kernel/search/mark.go index 5e0498564..a9f0c5a00 100644 --- a/kernel/search/mark.go +++ b/kernel/search/mark.go @@ -88,6 +88,10 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str } re := ic + "(" for i, k := range keywords { + if "" == k { + continue + } + wordBoundary := false if splitWords { wordBoundary = lex.IsASCIILetterNums(gulu.Str.ToBytes(k)) // Improve virtual reference split words https://github.com/siyuan-note/siyuan/issues/7833