-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
实现标题大纲持久化、折叠展开同级标题、添加保持当前标题展开
按钮、支持大纲筛选
#15814
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
Your PR was set to target |
重启思源之后大纲能恢复吗? |
可以的,重启后localstorage依然还在的 |
This comment was marked as outdated.
This comment was marked as outdated.
- 新增 resetLevelDisplay 方法以重置层级显示状态 - 更新层级控制的初始化逻辑,默认不显示层级 - 在文档切换时重置层级显示状态
- 合并大纲存储为单一文件 outline.json
改为在data/storage文件夹下创建outline.json文件,只需要新建一个json来统一管理,不需要像方案二一样,新文档都新建json
|
outline.json 是不是会越来越大?参与同步吗? |
几百万行的json才算大,有1w文档都算超级多的了,没多少用户有这个量级 7w字的思源笔记sy文件,40w字符,才590k大小,倒是不必担心文件大小 |
可以加一个机制,outline.json只存储最近打开的前2000个文档,或者文档超过一年都没打开,就删除折叠标题信息,其实也没必要记住所有文档的标题折叠信息,一个文档长期不打开,就没必要记录了 |
保持当前标题展开
按钮
- 超过两级折叠,也能都展开 - 如果父节点折叠,展开时自动折叠兄弟节点,只展开当前节点路径,如果父节点是展开状态,则不影响兄弟节点折叠状态
新增:右键click点击折叠图标,会展开所有子标题 |
有可能,添加一个搜索过滤按钮吗 |
有可能,添加滚动定位大纲的功能吗 |
建议直接和官方提issue
|
滚动时自动定位大纲位置 https://ld246.com/article/1757773937694 试试这个 |
- 添加 showAllDescendants 函数以显示所有子标题 - 修改 processUL 函数以在父标题命中时显示所有子标题 - 确保未命中的子标题隐藏
保持当前标题展开
按钮保持当前标题展开
按钮、支持大纲筛选
关联:#12387
功能改进
data/storage
文件夹下创建outline.json
文件,记录文档展开的标题ID,最多记录2000个文档保持当前标题展开
按钮,保持全部展开
改为全部展开
按钮为什么要改进
保持全部展开
这个功能我感觉用处不大,还很容易让用户以为就是普通的全部展开按钮,不知道是会一直持续起作用的,而且很多时候是不需要一直保持全部展开状态的,只是需要展开当前编辑的标题个人觉得把
保持全部展开
改为普通的全部展开,然后新增一个保持当前标题展开
会更有用,就是当前我编辑这个标题,标题大纲定位到这个标题,就会自动展开到当前标题,把父标题都展开,不影响其他标题,这样就算一直起作用影响也小一点,不至于标题全部都展开了保持当前标题展开
功能