From c993d19bff968f23a15fcb104424b6fb5f88baeb Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 12 Oct 2025 10:50:15 +0800 Subject: [PATCH 1/3] :art: https://github.com/siyuan-note/siyuan/issues/16048 Signed-off-by: Daniel <845765@qq.com> --- kernel/model/transaction.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 0e0a1ea76..aeca79cab 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1280,9 +1280,6 @@ func (tx *Transaction) doInsert(operation *Operation) (ret *TxErr) { node.InsertAfter(remain) } node.InsertAfter(insertedNode) - - parentFoldedHeading := treenode.GetParentFoldedHeading(insertedNode) - unfoldHeading(parentFoldedHeading) } else { node = treenode.GetNodeInTree(tree, operation.ParentID) if nil == node { From 0ff82ebe3e4721c3e8c4abe153ea77e655cb4b51 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 12 Oct 2025 11:02:10 +0800 Subject: [PATCH 2/3] :art: https://github.com/siyuan-note/siyuan/issues/15989 Signed-off-by: Daniel <845765@qq.com> --- kernel/model/transaction.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index aeca79cab..827e61d5b 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -912,12 +912,8 @@ func (tx *Transaction) doDelete(operation *Operation) (ret *TxErr) { node.Next.Unlink() } - next := node.Next node.Unlink() - parentFoldedHeading := treenode.GetParentFoldedHeading(next) - unfoldHeading(parentFoldedHeading) - if nil != parent && ast.NodeListItem == parent.Type && nil == parent.FirstChild { needAppendEmptyListItem := true for _, op := range tx.DoOperations { From 7d8e0ef1fd615cf15d074c65b29feb3e4485480c Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 12 Oct 2025 11:23:06 +0800 Subject: [PATCH 3/3] :art: https://github.com/siyuan-note/siyuan/issues/15989 Signed-off-by: Daniel <845765@qq.com> --- kernel/model/transaction.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 827e61d5b..0204f7ed9 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1276,6 +1276,16 @@ func (tx *Transaction) doInsert(operation *Operation) (ret *TxErr) { node.InsertAfter(remain) } node.InsertAfter(insertedNode) + + keepFold := false + if nil != operation.Context && nil != operation.Context["keepFold"] { + keepFoldArg := operation.Context["keepFold"] + keepFold = keepFoldArg.(bool) + } + if !keepFold { + parentFoldedHeading := treenode.GetParentFoldedHeading(insertedNode) + unfoldHeading(parentFoldedHeading) + } } else { node = treenode.GetNodeInTree(tree, operation.ParentID) if nil == node {