Parcourir la source

:zap: 改进打开虚拟引用后加载文档的性能 https://github.com/siyuan-note/siyuan/issues/7378

Liang Ding il y a 2 ans
Parent
commit
b75a46a228
1 fichiers modifiés avec 7 ajouts et 7 suppressions
  1. 7 7
      kernel/model/virutalref.go

+ 7 - 7
kernel/model/virutalref.go

@@ -54,20 +54,19 @@ func getBlockVirtualRefKeywords(root *ast.Node) (ret []string) {
 			return ast.WalkContinue
 		})
 		content := buf.String()
-		putBlockVirtualRefKeywords(content, root.ID, root.IALAttr("title"))
+		ret = putBlockVirtualRefKeywords(content, root.ID, root.IALAttr("title"))
 		return
 	}
 	ret = val.([]string)
 	return
 }
 
-func putBlockVirtualRefKeywords(blockContent, blockID, docTitle string) {
+func putBlockVirtualRefKeywords(blockContent, blockID, docTitle string) (ret []string) {
 	keywords := getVirtualRefKeywords(docTitle)
 	if 1 > len(keywords) {
 		return
 	}
 
-	var hitKeywords []string
 	contentTmp := blockContent
 	if !Conf.Search.CaseSensitive {
 		contentTmp = strings.ToLower(blockContent)
@@ -79,16 +78,17 @@ func putBlockVirtualRefKeywords(blockContent, blockID, docTitle string) {
 		}
 
 		if strings.Contains(contentTmp, keywordTmp) {
-			hitKeywords = append(hitKeywords, keyword)
+			ret = append(ret, keyword)
 		}
 	}
 
-	if 1 > len(hitKeywords) {
+	if 1 > len(ret) {
 		return
 	}
 
-	hitKeywords = gulu.Str.RemoveDuplicatedElem(hitKeywords)
-	virtualBlockRefCache.Set(blockID, hitKeywords, 1)
+	ret = gulu.Str.RemoveDuplicatedElem(ret)
+	virtualBlockRefCache.Set(blockID, ret, 1)
+	return
 }
 
 func CacheVirtualBlockRefJob() {