瀏覽代碼

:art: Improve search highlighting https://github.com/siyuan-note/siyuan/issues/13343

Daniel 8 月之前
父節點
當前提交
f024e3b07d
共有 1 個文件被更改,包括 10 次插入0 次删除
  1. 10 0
      kernel/model/file.go

+ 10 - 0
kernel/model/file.go

@@ -801,6 +801,7 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s
 
 	subTree := &parse.Tree{ID: rootID, Root: &ast.Node{Type: ast.NodeDocument}, Marks: tree.Marks}
 
+	query = filterQueryInvisibleChars(query)
 	if "" != query && (0 == queryMethod || 1 == queryMethod || 3 == queryMethod) { // 只有关键字、查询语法和正则表达式搜索支持高亮
 		if 0 == queryMethod {
 			query = stringQuery(query)
@@ -883,6 +884,15 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s
 	luteEngine.RenderOptions.NodeIndexStart = index
 	dom = luteEngine.Tree2BlockDOM(subTree, luteEngine.RenderOptions)
 
+	if 1 > len(keywords) {
+		keywords = []string{}
+	}
+	for i, keyword := range keywords {
+		keyword = strings.TrimPrefix(keyword, "#")
+		keyword = strings.TrimSuffix(keyword, "#")
+		keywords[i] = keyword
+	}
+
 	go setRecentDocByTree(tree)
 	return
 }