From 30621f6ecf38f4dc72b65d1f3c9a5947c0939864 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 29 Mar 2024 22:18:05 +0800 Subject: [PATCH] :art: The outline item in the outline panel supports dragging to adjust the level and position https://github.com/siyuan-note/siyuan/issues/7957 --- kernel/model/outline.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/model/outline.go b/kernel/model/outline.go index e07a86df9..63b2c6a01 100644 --- a/kernel/model/outline.go +++ b/kernel/model/outline.go @@ -54,8 +54,9 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { }) headingChildren := treenode.HeadingChildren(heading) - var tmp []*ast.Node + // 过滤掉超级块结束节点 + var tmp []*ast.Node for _, child := range headingChildren { if ast.NodeSuperBlockCloseMarker == child.Type { continue @@ -103,6 +104,17 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { targetNode := parentHeading parentHeadingChildren := treenode.HeadingChildren(parentHeading) + + // 找到下方第一个非标题节点 + tmp = nil + for _, child := range parentHeadingChildren { + if ast.NodeHeading == child.Type { + break + } + tmp = append(tmp, child) + } + parentHeadingChildren = tmp + if 0 < len(parentHeadingChildren) { for _, child := range parentHeadingChildren { if child.ID == headingID {