From 8f30e76864acafee8457a8174be6f229509d57f9 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 23 Feb 2023 18:37:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?:bug:=20=E5=AF=BC=E5=87=BA=E7=A9=BA?= =?UTF-8?q?=E6=96=87=E6=A1=A3=20Word=20=E5=92=8C=20PDF=20=E6=97=B6?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=AD=90=E6=96=87=E6=A1=A3=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=20https://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 { From d87d251b011f1c6459bcf128df296a7c88e6b37f Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 23 Feb 2023 18:39:36 +0800 Subject: [PATCH 2/3] =?UTF-8?q?:bug:=20=E5=AF=BC=E5=87=BA=E7=A9=BA?= =?UTF-8?q?=E6=96=87=E6=A1=A3=20Word=20=E5=92=8C=20PDF=20=E6=97=B6?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=AD=90=E6=96=87=E6=A1=A3=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=20Fix=20https://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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/model/export_merge.go b/kernel/model/export_merge.go index 300a48d51..c8b1e503a 100644 --- a/kernel/model/export_merge.go +++ b/kernel/model/export_merge.go @@ -39,8 +39,9 @@ func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) { } } - // 如果找不到非空段落,则使用第一个段落作为插入点 + // 导出空文档 Word 和 PDF 时合并子文档失败 https://github.com/siyuan-note/siyuan/issues/7429 if nil == insertPoint { + // 如果找不到非空段落,则使用第一个段落作为插入点 insertPoint = rootTree.Root.FirstChild if nil == insertPoint { // 如果文档为空,则创建一个空段落作为插入点 From f0bcd7f51f81f819d451e58bde56dcf841886b5d Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 23 Feb 2023 18:45:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?:art:=20=E6=94=AF=E6=8C=81=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=9D=97=E5=88=B6=E4=BD=9C=E9=97=AA=E5=8D=A1=20Fix=20?= =?UTF-8?q?https://github.com/siyuan-note/siyuan/issues/7460?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/flashcard.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/model/flashcard.go b/kernel/model/flashcard.go index 3d118b860..bf6e1214a 100644 --- a/kernel/model/flashcard.go +++ b/kernel/model/flashcard.go @@ -249,7 +249,7 @@ func getTreeSubTreeChildBlocks(rootID string) (treeBlockIDs map[string]bool) { for _, t := range trees { ast.Walk(t.Root, func(n *ast.Node, entering bool) ast.WalkStatus { - if !entering || !n.IsBlock() || ast.NodeDocument == n.Type { + if !entering || !n.IsBlock() { return ast.WalkContinue }