From 4c0d3365f1ae4db41fce2546eca8830f4a73ed42 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 9 Oct 2025 22:48:22 +0800 Subject: [PATCH] :art: Improve export of empty documents with subdocuments https://github.com/siyuan-note/siyuan/issues/16040 Signed-off-by: Daniel <845765@qq.com> --- kernel/model/export.go | 2 +- kernel/treenode/tree.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/model/export.go b/kernel/model/export.go index b734689a5..a0c9716ef 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -2040,7 +2040,7 @@ func exportMarkdownContent(id, ext string, exportRefMode int, defBlockIDs []stri } refCount := sql.QueryRootChildrenRefCount(tree.ID) - if !Conf.Export.MarkdownYFM && 5 > len(tree.Root.KramdownIAL) && 1 > len(refCount) { + if !Conf.Export.MarkdownYFM && treenode.ContainOnlyDefaultIAL(tree) && 1 > len(refCount) { for c := tree.Root.FirstChild; nil != c; c = c.Next { if ast.NodeParagraph == c.Type { isEmpty = nil == c.FirstChild diff --git a/kernel/treenode/tree.go b/kernel/treenode/tree.go index f089c39ac..871a3d31e 100644 --- a/kernel/treenode/tree.go +++ b/kernel/treenode/tree.go @@ -125,3 +125,7 @@ func NewParagraph(id string) (ret *ast.Node) { func NewSpanAnchor(id string) (ret *ast.Node) { return &ast.Node{Type: ast.NodeInlineHTML, Tokens: []byte("")} } + +func ContainOnlyDefaultIAL(tree *parse.Tree) bool { + return 5 > len(tree.Root.KramdownIAL) +}