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) } }