文档树能否加个配置项,点击文档同时打开下一级,每次都需要点左边的小按钮很麻烦

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25730 引用 • 106476 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • sisisi 1 评论

    的确单击就展开是存在体验不好的时候,我觉得更好的方式是和 Trilium 一样,将子文档的预览放在当前文档的底部,图示中选中社会科学类后就能浏览该文档下的子文档大概情况,同时可以直接进入 2 级子文档,如这里的认知科学。而不需要展开社会科学类-> 展开心理学-> 点击认知科学。

    image.png

  • 其他回帖
  • HugZephyr

    单击就展开的体验极其不好, 你可能想要的是双击展开

    // ### [js片段] 双击节点展开/折叠 (DOUBLE_SWITCH 控制) (() => { /***************************自主配置begin**************************************/ // 修改配置后, 需要刷新页面(设置->快捷键->刷新), 否则会有问题 const CONFIG = { DOUBLE_SWITCH : true, // 是否启用双击展开/折叠 DOUBLE_INTERVAL: 300, // 双击最大间隔时间 毫秒 }; /***************************自主配置end****************************************/ // 生成唯一ID用于日志标识 const SESSION_ID = Date.now(); // 点击类型枚举 const CLICK_TYPE = { INVALID: 0, // 无效的点击 NODE : 1, // 点击节点 ARROW : 2, // 点击折叠按钮 BOOK : 3, // 点击笔记本 }; // 工具函数 const utils = { log(...args) { const now = new Date(); const hours = String(now.getHours()).padStart(2, '0'); // 获取小时并补零 const minutes = String(now.getMinutes()).padStart(2, '0'); // 获取分钟并补零 const seconds = String(now.getSeconds()).padStart(2, '0'); // 获取秒数并补零 const milliseconds = String(now.getMilliseconds()).padStart(3, '0'); // 获取毫秒并补零 const timeString = `${hours}:${minutes}:${seconds}.${milliseconds}`; // 形成 hh:mm:ss.SSS 格式 console.log(`[${SESSION_ID}] [${timeString}]:`, ...args); }, getTagName(element) { return element?.tagName?.toLowerCase() || ''; } }; // 树节点处理类 class TreeHandler { constructor() { this.lastClickTime = 0; // 上次点击时间 } // 获取当前元素对应的种类 getClickType(element) { if (!element) return CLICK_TYPE.INVALID; let target = element; let tagName = utils.getTagName(target); // 处理SVG元素 if (tagName === 'use') { target = element.parentElement.parentElement; } else if (tagName === 'svg') { target = element.parentElement; } tagName = utils.getTagName(target); if (tagName === 'ul') { return CLICK_TYPE.INVALID; } else if (tagName === 'li' && target.getAttribute('data-path') === '/') { return CLICK_TYPE.BOOK; } else if (tagName === 'li') { return CLICK_TYPE.NODE; } else if (tagName === 'span') { if (target.classList.contains('b3-list-item__toggle')) { return CLICK_TYPE.ARROW; } else if (target.classList.contains('b3-list-item__text') && target.parentElement.getAttribute('data-path') === '/') { return CLICK_TYPE.BOOK; } else if (target.classList.contains('b3-list-item__text')) { return CLICK_TYPE.NODE; } } return CLICK_TYPE.INVALID; } // 点击节点对应的折叠按钮, 前提: element必须是点击的节点 clickArrowButton(element) { const li = utils.getTagName(element) === 'span' ? element.parentElement : element; if (utils.getTagName(li) !== 'li') return; li.querySelector('span.b3-list-item__toggle:not(.fn__hidden)')?.click(); } // 处理鼠标点击事件 handleClickEvent(event) { const element = event.target; const clickType = this.getClickType(element); // 处理双击, 系统自带的双击监测事件, 有点问题, 所以自己实现一个 const currentTime = Date.now(); utils.log("点击了", (currentTime-this.lastClickTime), clickType, element); if (CONFIG.DOUBLE_SWITCH && currentTime - this.lastClickTime < CONFIG.DOUBLE_INTERVAL && clickType === CLICK_TYPE.NODE) { utils.log("双击展开/折叠触发"); this.clickArrowButton(element); } this.lastClickTime = currentTime; } } // 初始化并监听点击事件 let initInterval = setInterval(() => { const treeContainer = document.querySelector('.sy__file>.fn__flex-1'); if (treeContainer) { clearInterval(initInterval); const handler = new TreeHandler(); treeContainer.addEventListener('click', e => handler.handleClickEvent(e), true); } }, 200); })();
    1 回复
  • auric 3 评论

    集市有个插件:双击文档树,应该是差不多的。

    我知道那个, 但是他好像有 bug(小声), 我就自己写了一个
    HugZephyr
    我以前用这个插件发现会有卡死整个界面的问题
    JeffreyChen
    哈哈,我倒没有遇到过,平时用文档树的时间比较少
    auric
  • 可以用多层笔记本插件的自动模式

推荐标签 标签

  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    180 引用 • 821 回帖
  • V2Ray
    1 引用 • 15 回帖 • 2 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 177 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 534 回帖
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    17 引用 • 7 回帖 • 3 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    954 引用 • 944 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 749 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 2 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 704 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 675 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    86 引用 • 165 回帖 • 4 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 1 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • OnlyOffice
    4 引用 • 25 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 6 关注
  • gRpc
    11 引用 • 9 回帖 • 94 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 556 关注
  • Follow
    4 引用 • 12 回帖 • 5 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 502 关注
  • OpenCV
    15 引用 • 36 回帖 • 5 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖 • 1 关注