Просмотр исходного кода

:art: The backlink panel no longer displays breadcrumbs of the first-level blocks https://github.com/siyuan-note/siyuan/issues/12862

Daniel 8 месяцев назад
Родитель
Сommit
df52d35efa
3 измененных файлов с 11 добавлено и 5 удалено
  1. 2 2
      kernel/model/backlink.go
  2. 1 1
      kernel/model/block.go
  3. 8 2
      kernel/model/blockinfo.go

+ 2 - 2
kernel/model/backlink.go

@@ -171,10 +171,10 @@ func buildBacklink(refID string, refTree *parse.Tree, keywords []string, luteEng
 
 	dom := renderBlockDOMByNodes(renderNodes, luteEngine)
 	blockPaths := []*BlockPath{}
-	if nil != n.Parent && nil != n.Parent.Parent {
+	if nil != n.Parent && ast.NodeDocument != n.Parent.Type && nil != n.Parent.Parent && ast.NodeDocument != n.Parent.Parent.Type {
 		// 仅在多余一层时才显示面包屑,这样界面展示更加简洁
 		// The backlink panel no longer displays breadcrumbs of the first-level blocks https://github.com/siyuan-note/siyuan/issues/12862
-		blockPaths = buildBlockBreadcrumb(n, nil)
+		blockPaths = buildBlockBreadcrumb(n, nil, false)
 	}
 	ret = &Backlink{DOM: dom, BlockPaths: blockPaths, Expand: expand}
 	return

+ 1 - 1
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)
+		blockPaths = buildBlockBreadcrumb(def, nil, true)
 	}
 	if 1 > len(blockPaths) {
 		blockPaths = []*BlockPath{}

+ 8 - 2
kernel/model/blockinfo.go

@@ -416,11 +416,11 @@ func BuildBlockBreadcrumb(id string, excludeTypes []string) (ret []*BlockPath, e
 		return
 	}
 
-	ret = buildBlockBreadcrumb(node, excludeTypes)
+	ret = buildBlockBreadcrumb(node, excludeTypes, true)
 	return
 }
 
-func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string) (ret []*BlockPath) {
+func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string, displayCurrentNodeContent bool) (ret []*BlockPath) {
 	ret = []*BlockPath{}
 	if nil == node {
 		return
@@ -480,6 +480,12 @@ func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string) (ret []*BlockPa
 
 		name = strings.ReplaceAll(name, editor.Caret, "")
 		name = util.EscapeHTML(name)
+
+		if parent == node && !displayCurrentNodeContent {
+			// 反链中不显示当前块内容 https://github.com/siyuan-note/siyuan/issues/12862#issuecomment-2426406327
+			name = ""
+		}
+
 		if add {
 			ret = append([]*BlockPath{{
 				ID:      id,