Przeglądaj źródła

:sparkles: 编辑器式反链面板 https://github.com/siyuan-note/siyuan/issues/3565

Liang Ding 2 lat temu
rodzic
commit
d19cd19f44
2 zmienionych plików z 7 dodań i 45 usunięć
  1. 7 1
      kernel/model/backlink.go
  2. 0 44
      kernel/model/path.go

+ 7 - 1
kernel/model/backlink.go

@@ -397,10 +397,16 @@ func BuildTreeBacklink(id, keyword, mentionKeyword string, beforeLen int) (boxID
 	refs = removeDuplicatedRefs(refs) // 同一个块中引用多个相同块时反链去重 https://github.com/siyuan-note/siyuan/issues/3317
 	refs = removeDuplicatedRefs(refs) // 同一个块中引用多个相同块时反链去重 https://github.com/siyuan-note/siyuan/issues/3317
 
 
 	linkRefs, excludeBacklinkIDs := buildLinkRefs(id, refs)
 	linkRefs, excludeBacklinkIDs := buildLinkRefs(id, refs)
-	backlinks = toSubTree(linkRefs, keyword)
+	backlinks = toFlatTree(linkRefs, 0, "backlink")
+	for _, l := range backlinks {
+		l.Blocks = nil
+	}
 
 
 	mentionRefs := buildTreeBackmention(sqlBlock, linkRefs, mentionKeyword, excludeBacklinkIDs, beforeLen)
 	mentionRefs := buildTreeBackmention(sqlBlock, linkRefs, mentionKeyword, excludeBacklinkIDs, beforeLen)
 	backmentions = toFlatTree(mentionRefs, 0, "backlink")
 	backmentions = toFlatTree(mentionRefs, 0, "backlink")
+	for _, l := range backmentions {
+		l.Blocks = nil
+	}
 	mentionsCount = len(backmentions)
 	mentionsCount = len(backmentions)
 	return
 	return
 }
 }

+ 0 - 44
kernel/model/path.go

@@ -27,7 +27,6 @@ import (
 	"github.com/88250/gulu"
 	"github.com/88250/gulu"
 	"github.com/88250/lute/ast"
 	"github.com/88250/lute/ast"
 	"github.com/siyuan-note/logging"
 	"github.com/siyuan-note/logging"
-	"github.com/siyuan-note/siyuan/kernel/search"
 	"github.com/siyuan-note/siyuan/kernel/treenode"
 	"github.com/siyuan-note/siyuan/kernel/treenode"
 	"github.com/siyuan-note/siyuan/kernel/util"
 	"github.com/siyuan-note/siyuan/kernel/util"
 )
 )
@@ -124,49 +123,6 @@ func toFlatTree(blocks []*Block, baseDepth int, typ string) (ret []*Path) {
 	return
 	return
 }
 }
 
 
-func toSubTree(blocks []*Block, keyword string) (ret []*Path) {
-	keyword = strings.TrimSpace(keyword)
-	var blockRoots []*Block
-	for _, block := range blocks {
-		root := getBlockIn(blockRoots, block.RootID)
-		if nil == root {
-			root, _ = getBlock(block.RootID)
-			blockRoots = append(blockRoots, root)
-		}
-		block.Depth = 1
-		block.Count = len(block.Children)
-		root.Children = append(root.Children, block)
-	}
-
-	for _, root := range blockRoots {
-		treeNode := &Path{
-			ID:       root.ID,
-			Box:      root.Box,
-			Name:     path.Base(root.HPath),
-			Type:     "backlink",
-			NodeType: "NodeDocument",
-			SubType:  root.SubType,
-			Depth:    0,
-			Count:    len(root.Children),
-		}
-
-		rootPos := -1
-		var rootContent string
-		if "" != keyword {
-			rootPos, rootContent = search.MarkText(treeNode.Name, keyword, 12, Conf.Search.CaseSensitive)
-			treeNode.Name = rootContent
-		}
-		if 0 < len(treeNode.Children) || 0 < len(treeNode.Blocks) || (-1 < rootPos && "" != keyword) {
-			ret = append(ret, treeNode)
-		}
-	}
-
-	sort.Slice(ret, func(i, j int) bool {
-		return ret[i].ID > ret[j].ID
-	})
-	return
-}
-
 func getBlockIn(blocks []*Block, id string) *Block {
 func getBlockIn(blocks []*Block, id string) *Block {
 	if "" == id {
 	if "" == id {
 		return nil
 		return nil