From 3980db01b52643814c89f45748977d9edc53ba24 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sun, 5 Mar 2023 13:31:46 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E8=B6=85=E7=BA=A7=E5=9D=97=E5=86=85?= =?UTF-8?q?=E9=80=92=E5=BD=92=E5=B5=8C=E5=85=A5=E7=9A=84=E5=B5=8C=E5=85=A5?= =?UTF-8?q?=E5=9D=97=E4=B8=8D=E5=BA=94=E8=AF=A5=E6=98=BE=E7=A4=BA=E9=9D=A2?= =?UTF-8?q?=E5=8C=85=E5=B1=91=20https://github.com/siyuan-note/siyuan/issu?= =?UTF-8?q?es/7575?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/block.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/kernel/model/block.go b/kernel/model/block.go index 5fe311a1f..d07c6d410 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -546,16 +546,21 @@ func getEmbeddedBlock(embedBlockID string, trees map[string]*parse.Tree, sqlBloc content := renderBlockContentByNodes(nodes) block = &Block{Box: def.Box, Path: def.Path, HPath: b.HPath, ID: def.ID, Type: def.Type.String(), Content: dom, Markdown: content /* 这里使用 Markdown 字段来临时存储 content */} - // 位于超级块中的嵌入块不显示面包屑 https://github.com/siyuan-note/siyuan/issues/6258 - inSuperBlock := false - embedNodeTree, _ := loadTreeByBlockID(embedBlockID) - if nil != embedNodeTree { - embedNode := treenode.GetNodeInTree(embedNodeTree, embedBlockID) - inSuperBlock = nil != embedNode && embedNode.ParentIs(ast.NodeSuperBlock) - } + if breadcrumb { + // 位于超级块中的嵌入块不显示面包屑 https://github.com/siyuan-note/siyuan/issues/6258 + // 但是这里后端无法判断递归嵌入的情况,所以还是需要前端判断 breadcrumb + // 超级块内递归嵌入的嵌入块不应该显示面包屑 https://github.com/siyuan-note/siyuan/issues/7575 - if breadcrumb && !inSuperBlock { - blockPaths = buildBlockBreadcrumb(def, nil) + inSuperBlock := false + embedNodeTree, _ := loadTreeByBlockID(embedBlockID) + if nil != embedNodeTree { + embedNode := treenode.GetNodeInTree(embedNodeTree, embedBlockID) + inSuperBlock = nil != embedNode && embedNode.ParentIs(ast.NodeSuperBlock) + } + + if !inSuperBlock { + blockPaths = buildBlockBreadcrumb(def, nil) + } } if 1 > len(blockPaths) { blockPaths = []*BlockPath{}