From 0b7c6a851e08fddf0d807484ca0c5da3ac8985ae Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 13 Oct 2022 12:00:29 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=B9=E8=BF=9B=E6=8F=90=E5=8F=8A?= =?UTF-8?q?=E5=92=8C=E8=99=9A=E6=8B=9F=E5=BC=95=E7=94=A8=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=88=86=E8=AF=8D=20Fix=20https://github.com/siyuan-note/siyua?= =?UTF-8?q?n/issues/6176?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/backlink.go | 5 +++++ kernel/model/search.go | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/kernel/model/backlink.go b/kernel/model/backlink.go index 37a3e71d3..877c63817 100644 --- a/kernel/model/backlink.go +++ b/kernel/model/backlink.go @@ -791,10 +791,15 @@ func searchBackmention(mentionKeywords []string, keyword string, excludeBacklink text := textBuf.String() text = strings.ToLower(text) + text = luteEngine.Space(text) var contain bool for _, mentionKeyword := range mentionKeywords { parts := strings.Split(text, " ") for _, part := range parts { + if "" == part { + continue + } + if gulu.Str.IsASCII(mentionKeyword) { if part == mentionKeyword { contain = true diff --git a/kernel/model/search.go b/kernel/model/search.go index b02220a22..57afce85a 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -649,8 +649,14 @@ func markReplaceSpan(text string, keywords []string, replacementStart, replaceme for _, k := range keywords { if gulu.Str.IsASCII(k) { - if part == k { - parts[i] = replacementStart + k + replacementEnd + if gulu.Str.IsASCII(part) { + if part == k { + parts[i] = replacementStart + k + replacementEnd + } + } else { + if strings.Contains(part, k) { + parts[i] = strings.ReplaceAll(part, k, replacementStart+k+replacementEnd) + } } } else { if strings.Contains(part, k) {