guopenghui / obsidian-quiet-outline

Improving experience of outline in Obsidian
MIT License
287 stars 17 forks source link

增加或删除标题时能否自动执行一次reset? #171

Closed exam-ple closed 3 months ago

exam-ple commented 4 months ago

我是默认标题全部展开的, 但增加或删除标题时, 该标题下方的其它所有标题都会全部收缩起来, 每一次都要点击最上方搜索框旁边的'reset'按钮让它重新全部展开, 所以能否如题目所说, 增加或删除标题时能否自动触发执行一次reset, 这样就不用每一次标题数量一有变化都要手动点击一次reset

非常感谢

guopenghui commented 4 months ago

更新到最新版本还有这个问题吗?

guopenghui commented 3 months ago

因为没有回复,先关闭该 issue。如果还有问题再打开

exam-ple commented 3 months ago

@guopenghui 最新版本(0.3.28)仍然有这个问题,, 但好像有好一些(之前好像是变动的小标题之后的所有小标题都会被收起, 现在只会在变动的小标题 到 与该小标题同级的下一个小标题之间的区间会被收起. 另外, 删除小标题好像已经不会被收起了)

不增删小标题, 只是改变某个小标题的等级时, 也会有这个问题

我不太懂编程, 但有个思路, 就是可以弄个小标题计数器, 当小标题的总量或各级标题的数量发生变化时, 有设置成小标题全部展开的, 就自动触发执行一次reset, 这样应该就能解决这个问题了

关闭的issue回复你还能看到吗?

guopenghui commented 3 months ago

可以看到。 你说的应该是“在新创建标题时,下面紧挨着新标题的更小的标题会被折叠”吧。 这是因为新标题创建出来后,默认状态是折叠的。 比如之前是:

一
二       // <展开
    1    // <展开
    2    // <展开
    3    // <展开
三

添加新标题后会是这样的:

一
二       // <展开
新标题   // <折叠
    1    // <展开
    2    // <展开
    3    // <展开
三

新添加的标题应不应该默认展开,这个可以讨论一下

exam-ple commented 3 months ago

@guopenghui 是的, 会有你上面说的那种情况, 也就是新建标题后, 1,2,3会因折叠而看不见. 另外, 即使不是新建, 只是把'2'更改成比它更上级别的(比如更改成与'二'同等级的), 也会出现折叠导致'3'看不见

这些情况应不应该默认展开, 主要看用户是否有设置成默认全部展开

上面提到的用标题总数以及各级标题数量是否有变化, 来自动触发reset, 这个思路可行吗?

guopenghui commented 3 months ago

reset并不是一个好选择,很多情况下你创建一个新标题,并不希望和这个标题无关的标题被reset,而是希望保持不变

exam-ple commented 3 months ago

@guopenghui 当然, 如果在编程上有更好更高效的方法的话当然最好, 但实际情况其实不止上面所说的那些, 比如下面这个:

240508-125058

原先标题4是保持全部展开的, 但是在它前面加了2个标题后, 它被收缩了, 但它之后的其它标题没有被收缩, 新加的5标题的二级标题2.1也被收缩了. reset后重新恢复全部展开后, 把刚加的2个标题剪切后, 只有4标题的二级标题2.1被收缩了, 其它标题没有被收缩

还有其它复杂的情况, 如果所有情况都要一一按情况来解决的话, 还不如不管它什么情况, 直接reset来解决来得高效. 对于默认设置为全部展开的用户, 其实不会考虑无关的标题是否保持不变, 也不会在乎它是否被reset, 只要所有的标题能始终保持展开状态就好

guopenghui commented 3 months ago

你是用了什么自动编号之类的插件吗。插入4 和 5 之后,原来的4变成6了。

现在是通过计算前后标题的diff来实现保持展开状态的,这个6会被认为是一个新标题,所以默认折叠。后面删除后,这个6下面的2.1会被认为是之前4下面那个没有子标题的2.1,也就继承了它的折叠状态

也许你的需求能通过另一个功能实现,打开自动展开(选择其余标题展开到默认的那个选项),这样只要光标位置变化,标题就会都全部展开

exam-ple commented 3 months ago

@guopenghui 自动编号是用css实现的, 所以这个不影响实际内容

好的, "自动展开"我按照你说的设置一下试用一段时间看看

非常感谢😊