From 410251677c45e482081a419b29e13b44d856516c Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 28 May 2022 21:58:04 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E5=A4=A7=E7=BA=B2=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=96=87=E6=A1=A3=E6=A0=87=E9=A2=98=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BC=A9=E8=BF=9B=20https://github.com/siyua?= =?UTF-8?q?n-note/siyuan/issues/5011?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/outline.go | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/kernel/model/outline.go b/kernel/model/outline.go index b2f35e549..ed8238aa1 100644 --- a/kernel/model/outline.go +++ b/kernel/model/outline.go @@ -82,22 +82,30 @@ func Outline(rootID string) (ret []*Path, err error) { } ret = toFlatTree(blocks, 0, "outline") - resetDepth(ret) + if 0 < len(ret) { + children := ret[0].Blocks + ret = nil + for _, b := range children { + resetDepth(b, 0) + ret = append(ret, &Path{ + ID: b.ID, + Box: b.Box, + Name: b.Content, + Type: b.Type, + SubType: b.SubType, + Blocks: b.Children, + Depth: 0, + Count: b.Count, + }) + } + } return } -func resetDepth(paths []*Path) { - for _, p := range paths { - for _, b := range p.Blocks { - resetDepth0(b, p.Depth) - } - } -} - -func resetDepth0(b *Block, depth int) { - b.Depth = depth + 1 +func resetDepth(b *Block, depth int) { + b.Depth = depth b.Count = len(b.Children) for _, c := range b.Children { - resetDepth0(c, depth+1) + resetDepth(c, depth+1) } }