🐛 The folded state of the block under the folded heading is incorrect in some cases https://github.com/siyuan-note/siyuan/issues/15717

This commit is contained in:
Daniel 2025-08-29 10:47:04 +08:00
parent 0a079a39ca
commit 1c57d0b696
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -86,13 +86,24 @@ func GetHeadingFold(nodes []*ast.Node) (ret []*ast.Node) {
} }
func IsUnderFoldedHeading(node *ast.Node) bool { func IsUnderFoldedHeading(node *ast.Node) bool {
currentLevel := 7
if ast.NodeHeading == node.Type {
currentLevel = node.HeadingLevel
}
for n := node.Previous; nil != n; n = n.Previous { for n := node.Previous; nil != n; n = n.Previous {
if ast.NodeHeading == n.Type && "1" == n.IALAttr("fold") { if ast.NodeHeading == n.Type {
if ast.NodeHeading != node.Type { if n.HeadingLevel >= currentLevel {
return true break
} }
if n.HeadingLevel > node.HeadingLevel { currentLevel = n.HeadingLevel
return true
if "1" == n.IALAttr("fold") {
if ast.NodeHeading != node.Type {
return true
}
if n.HeadingLevel > node.HeadingLevel {
return true
}
} }
} }
} }