From ff664f1262a2e9c2ff3342ff3b25f527bb8960f8 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sun, 11 Dec 2022 11:35:39 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=AF=E6=8C=81=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=AD=90=E6=96=87=E6=A1=A3=E5=AF=BC=E5=87=BA=20Word/PDF=20http?= =?UTF-8?q?s://github.com/siyuan-note/siyuan/issues/3219?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/export_merge.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/kernel/model/export_merge.go b/kernel/model/export_merge.go index 2bab6eea1..1dcde9428 100644 --- a/kernel/model/export_merge.go +++ b/kernel/model/export_merge.go @@ -29,12 +29,15 @@ func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) { } insertPoint := rootTree.Root.LastChild + if nil == insertPoint { + insertPoint = rootTree.Root + } + for { i := 0 if err = walkBlock(insertPoint, rootBlock, i); nil != err { return } - if nil == rootBlock.Children { break } @@ -44,13 +47,12 @@ func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) { func walkBlock(insertPoint *ast.Node, block *Block, level int) (err error) { level++ - for _, c := range block.Children { + for i := len(block.Children) - 1; i >= 0; i-- { + c := block.Children[i] if err = walkBlock(insertPoint, c, level); nil != err { return } - } - for _, c := range block.Children { nodes, loadErr := loadTreeNodes(c.Box, c.Path, level) if nil != loadErr { return