Sfoglia il codice sorgente

:art: 搜索结果高亮支持大部分行级元素 https://github.com/siyuan-note/siyuan/issues/6745

Liang Ding 2 anni fa
parent
commit
3d92974f9e
4 ha cambiato i file con 21 aggiunte e 20 eliminazioni
  1. 13 15
      kernel/model/file.go
  2. 3 5
      kernel/model/history.go
  3. 1 0
      kernel/model/search.go
  4. 4 0
      kernel/model/virutalref.go

+ 13 - 15
kernel/model/file.go

@@ -644,25 +644,23 @@ func GetDoc(startID, endID, id string, index int, keyword string, mode int, size
 				n.Tokens = gulu.Str.ToBytes(text)
 				n.Tokens = gulu.Str.ToBytes(text)
 			}
 			}
 
 
-			if ast.NodeText == n.Type {
-				if 0 < len(keywords) {
-					hitBlock := false
-					for p := n.Parent; nil != p; p = p.Parent {
-						if p.ID == id {
-							hitBlock = true
-							break
-						}
+			if 0 < len(keywords) {
+				hitBlock := false
+				for p := n.Parent; nil != p; p = p.Parent {
+					if p.ID == id {
+						hitBlock = true
+						break
 					}
 					}
-					if hitBlock {
-						if markReplaceSpan(n, &unlinks, keywords, searchMarkDataType, luteEngine) {
-							return ast.WalkContinue
-						}
+				}
+				if hitBlock {
+					if markReplaceSpan(n, &unlinks, keywords, searchMarkDataType, luteEngine) {
+						return ast.WalkContinue
 					}
 					}
 				}
 				}
+			}
 
 
-				if processVirtualRef(n, &unlinks, virtualBlockRefKeywords, refCount, luteEngine) {
-					return ast.WalkContinue
-				}
+			if processVirtualRef(n, &unlinks, virtualBlockRefKeywords, refCount, luteEngine) {
+				return ast.WalkContinue
 			}
 			}
 			return ast.WalkContinue
 			return ast.WalkContinue
 		})
 		})

+ 3 - 5
kernel/model/history.go

@@ -177,11 +177,9 @@ func GetDocHistoryContent(historyPath, keyword string) (id, rootID, content stri
 			n.RemoveIALAttr("heading-fold")
 			n.RemoveIALAttr("heading-fold")
 			n.RemoveIALAttr("fold")
 			n.RemoveIALAttr("fold")
 
 
-			if ast.NodeText == n.Type {
-				if 0 < len(keywords) {
-					if markReplaceSpan(n, &unlinks, keywords, searchMarkDataType, luteEngine) {
-						return ast.WalkContinue
-					}
+			if 0 < len(keywords) {
+				if markReplaceSpan(n, &unlinks, keywords, searchMarkDataType, luteEngine) {
+					return ast.WalkContinue
 				}
 				}
 			}
 			}
 			return ast.WalkContinue
 			return ast.WalkContinue

+ 1 - 0
kernel/model/search.go

@@ -893,6 +893,7 @@ func markReplaceSpan(n *ast.Node, unlinks *[]*ast.Node, keywords []string, markS
 		}
 		}
 	} else if ast.NodeTextMark == n.Type {
 	} else if ast.NodeTextMark == n.Type {
 		// TODO 搜索结果高亮支持大部分行级元素 https://github.com/siyuan-note/siyuan/issues/6745
 		// TODO 搜索结果高亮支持大部分行级元素 https://github.com/siyuan-note/siyuan/issues/6745
+		
 	}
 	}
 	return false
 	return false
 }
 }

+ 4 - 0
kernel/model/virutalref.go

@@ -35,6 +35,10 @@ func processVirtualRef(n *ast.Node, unlinks *[]*ast.Node, virtualBlockRefKeyword
 		return false
 		return false
 	}
 	}
 
 
+	if ast.NodeText != n.Type {
+		return false
+	}
+
 	parentBlock := treenode.ParentBlock(n)
 	parentBlock := treenode.ParentBlock(n)
 	if nil == parentBlock || 0 < refCount[parentBlock.ID] {
 	if nil == parentBlock || 0 < refCount[parentBlock.ID] {
 		return false
 		return false