From f0a292ac51cba35496c9572a33a7ecfce9566cfc Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 4 Nov 2024 17:46:10 +0800 Subject: [PATCH] :art: Improve the backlink panel breadcrumb and block sorting https://github.com/siyuan-note/siyuan/issues/13008 --- kernel/model/backlink.go | 9 +++------ kernel/model/block.go | 2 +- kernel/model/blockinfo.go | 8 ++++---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/kernel/model/backlink.go b/kernel/model/backlink.go index 88c16e349..b4eef4df7 100644 --- a/kernel/model/backlink.go +++ b/kernel/model/backlink.go @@ -167,8 +167,8 @@ func GetBacklinkDoc(defID, refTreeID, keyword string, containChildren bool) (ret func filterBlockPaths(blockLinks []*Backlink) { for _, b := range blockLinks { - if 1 == len(b.BlockPaths) && "NodeDocument" == b.BlockPaths[0].Type { - // 如果只有根文档这一层则不显示 + if 2 == len(b.BlockPaths) { + // 根下只有一层则不显示 b.BlockPaths = []*BlockPath{} } } @@ -246,10 +246,7 @@ func buildBacklink(refID string, refTree *parse.Tree, keywords []string, luteEng dom := renderBlockDOMByNodes(renderNodes, luteEngine) var blockPaths []*BlockPath if (nil != n.Parent && ast.NodeDocument != n.Parent.Type) || (ast.NodeHeading != n.Type && 0 < treenode.HeadingLevel(n)) { - // 仅在多于一层时才显示面包屑,这样界面展示更加简洁 - // The backlink panel no longer displays breadcrumbs of the first-level blocks https://github.com/siyuan-note/siyuan/issues/12862 - // Improve the backlink panel breadcrumb and block sorting https://github.com/siyuan-note/siyuan/issues/13008 - blockPaths = buildBlockBreadcrumb(n, nil, false) + blockPaths = buildBlockBreadcrumb(n, nil) } if 1 > len(blockPaths) { blockPaths = []*BlockPath{} diff --git a/kernel/model/block.go b/kernel/model/block.go index 2b9675ac3..dec586803 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -887,7 +887,7 @@ func getEmbeddedBlock(trees map[string]*parse.Tree, sqlBlock *sql.Block, heading } if breadcrumb { - blockPaths = buildBlockBreadcrumb(def, nil, true) + blockPaths = buildBlockBreadcrumb(def, nil) } if 1 > len(blockPaths) { blockPaths = []*BlockPath{} diff --git a/kernel/model/blockinfo.go b/kernel/model/blockinfo.go index 635b5c2cb..93f6a0ec9 100644 --- a/kernel/model/blockinfo.go +++ b/kernel/model/blockinfo.go @@ -416,11 +416,11 @@ func BuildBlockBreadcrumb(id string, excludeTypes []string) (ret []*BlockPath, e return } - ret = buildBlockBreadcrumb(node, excludeTypes, true) + ret = buildBlockBreadcrumb(node, excludeTypes) return } -func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string, displayCurrentNode bool) (ret []*BlockPath) { +func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string) (ret []*BlockPath) { ret = []*BlockPath{} if nil == node { return @@ -481,8 +481,8 @@ func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string, displayCurrentN name = strings.ReplaceAll(name, editor.Caret, "") name = util.EscapeHTML(name) - if parent == node && !displayCurrentNode { - add = false + if parent == node { + name = "" } if add {