From 8f30e76864acafee8457a8174be6f229509d57f9 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 23 Feb 2023 18:37:56 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E5=AF=BC=E5=87=BA=E7=A9=BA=E6=96=87?= =?UTF-8?q?=E6=A1=A3=20Word=20=E5=92=8C=20PDF=20=E6=97=B6=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E5=AD=90=E6=96=87=E6=A1=A3=E5=A4=B1=E8=B4=A5=20https:?= =?UTF-8?q?//github.com/siyuan-note/siyuan/issues/7429?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/export_merge.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kernel/model/export_merge.go b/kernel/model/export_merge.go index f451f609a..300a48d51 100644 --- a/kernel/model/export_merge.go +++ b/kernel/model/export_merge.go @@ -20,6 +20,7 @@ import ( "github.com/88250/lute/ast" "github.com/88250/lute/parse" "github.com/siyuan-note/siyuan/kernel/filesys" + "github.com/siyuan-note/siyuan/kernel/treenode" ) func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) { @@ -30,9 +31,6 @@ func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) { } insertPoint := rootTree.Root.LastChild - if nil == insertPoint { - insertPoint = rootTree.Root - } // 跳过空段落插入点,向上寻找非空段落 for ; nil != insertPoint && ast.NodeParagraph == insertPoint.Type; insertPoint = insertPoint.Previous { @@ -41,6 +39,16 @@ func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) { } } + // 如果找不到非空段落,则使用第一个段落作为插入点 + if nil == insertPoint { + insertPoint = rootTree.Root.FirstChild + if nil == insertPoint { + // 如果文档为空,则创建一个空段落作为插入点 + insertPoint = treenode.NewParagraph() + rootTree.Root.AppendChild(insertPoint) + } + } + for { i := 0 if err = walkBlock(insertPoint, rootBlock, i); nil != err {