Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2025-10-29 16:01:15 +08:00
parent 19f0834766
commit e5f3fc5e51
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -252,6 +252,16 @@ func Outline(rootID string, preview bool) (ret []*Path, err error) {
}
if nil != storage["expandIds"] {
// 先全部折叠,后面再根据展开 ID 列表展开对应标题
for _, p := range ret {
for _, b := range p.Blocks {
b.Folded = false
for _, c := range b.Children {
walkChildren(c, []string{"expandNone"})
}
}
}
expandIDsArg := storage["expandIds"].([]interface{})
var expandIDs []string
for _, id := range expandIDsArg {
@ -271,8 +281,12 @@ func Outline(rootID string, preview bool) (ret []*Path, err error) {
}
func walkChildren(b *Block, expandIDs []string) {
if 1 == len(expandIDs) && "expandAll" == expandIDs[0] {
b.Folded = false
if 1 == len(expandIDs) {
if "expandAll" == expandIDs[0] {
b.Folded = false
} else if "expandNone" == expandIDs[0] {
b.Folded = true
}
} else {
b.Folded = !gulu.Str.Contains(b.ID, expandIDs)
}