🎨 反链提及搜索范围增加命名、别名和备注 Fix https://github.com/siyuan-note/siyuan/issues/7639

This commit is contained in:
Liang Ding 2023-03-12 22:07:20 +08:00
parent 66f6388c3d
commit 18f6bc3073
No known key found for this signature in database
GPG key ID: 136F30F901A2231D

View file

@ -642,7 +642,7 @@ func searchBackmention(mentionKeywords []string, keyword string, excludeBacklink
}
buf := bytes.Buffer{}
buf.WriteString("SELECT * FROM " + table + " WHERE " + table + " MATCH '{content}:(")
buf.WriteString("SELECT * FROM " + table + " WHERE " + table + " MATCH '" + columnFilter() + ":(")
for i, mentionKeyword := range mentionKeywords {
if Conf.Search.BacklinkMentionKeywordsLimit < i {
util.PushMsg(fmt.Sprintf(Conf.Language(38), len(mentionKeywords)), 5000)
@ -688,7 +688,7 @@ func searchBackmention(mentionKeywords []string, keyword string, excludeBacklink
if !entering || n.IsBlock() {
return ast.WalkContinue
}
if ast.NodeText == n.Type {
if ast.NodeText == n.Type { // 这里包含了标签命中的情况,因为 Lute 没有启用 TextMark
textBuf.Write(n.Tokens)
}
return ast.WalkContinue
@ -703,6 +703,14 @@ func searchBackmention(mentionKeywords []string, keyword string, excludeBacklink
newText := markReplaceSpanWithSplit(text, mentionKeywords, search.GetMarkSpanStart(search.MarkDataType), search.GetMarkSpanEnd())
if text != newText {
tmp = append(tmp, b)
} else {
// columnFilter 中的命名、别名和备注命中的情况
// 反链提及搜索范围增加命名、别名和备注 https://github.com/siyuan-note/siyuan/issues/7639
if gulu.Str.Contains(trimMarkTags(b.Name), mentionKeywords) ||
gulu.Str.Contains(trimMarkTags(b.Alias), mentionKeywords) ||
gulu.Str.Contains(trimMarkTags(b.Memo), mentionKeywords) {
tmp = append(tmp, b)
}
}
}
blocks = tmp
@ -727,6 +735,10 @@ func searchBackmention(mentionKeywords []string, keyword string, excludeBacklink
return
}
func trimMarkTags(str string) string {
return strings.TrimSuffix(strings.TrimPrefix(str, "<mark>"), "</mark>")
}
func getContainStr(str string, strs []string) string {
str = strings.ToLower(str)
for _, s := range strs {