From f88fec7235e090177676d1821227d50229719c4e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 28 Oct 2023 16:35:18 +0800 Subject: [PATCH 1/3] :art: Support `Jump to the next block in the parent level` on focus status https://github.com/siyuan-note/siyuan/issues/9527 --- kernel/model/block.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/model/block.go b/kernel/model/block.go index 46633c04f..0515fe85d 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -101,6 +101,10 @@ func GetParentNextChildID(id string) string { } for p := node.Parent; nil != p; p = p.Parent { + if ast.NodeDocument == p.Type { + return node.Next.ID + } + if nil != p.Next { return p.Next.ID } From b582f76f164fa03c892066a0be91ebaf1e6b8263 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 28 Oct 2023 16:43:13 +0800 Subject: [PATCH 2/3] :art: Support `Jump to the next block in the parent level` on focus status https://github.com/siyuan-note/siyuan/issues/9527 --- kernel/model/block.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/model/block.go b/kernel/model/block.go index 0515fe85d..dbad56dca 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -105,8 +105,11 @@ func GetParentNextChildID(id string) string { return node.Next.ID } - if nil != p.Next { - return p.Next.ID + for f := p.Next; nil != f; f = f.Next { + // 遍历取下一个块级元素(比如跳过超级块 Close 节点) + if f.IsBlock() { + return f.ID + } } } return "" From c47de3eba0bbf56e81fa467677109718839e6f76 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 28 Oct 2023 16:44:37 +0800 Subject: [PATCH 3/3] :art: Support `Jump to the next block in the parent level` on focus status https://github.com/siyuan-note/siyuan/issues/9527 --- kernel/model/block.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/model/block.go b/kernel/model/block.go index dbad56dca..fa2000d03 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -102,7 +102,10 @@ func GetParentNextChildID(id string) string { for p := node.Parent; nil != p; p = p.Parent { if ast.NodeDocument == p.Type { - return node.Next.ID + if nil != node.Next { + return node.Next.ID + } + return "" } for f := p.Next; nil != f; f = f.Next {