是否有折叠列表父节点的方法?

updated: 再看了一遍设置项,可以使用跳转到父块再折叠,一键的方法暂时没找到,或许会考虑用代码片段临时实现吧


在社区、思源快捷键中里搜索 折叠 父 暂未搜索到相关内容。

社区开发者文档里看到了 /api/block | 思源社区文档 折叠节点的接口,虽然还没了解怎么使用。但获取当前编辑节点、向上获取父节点、调用折叠实现的脚本思路已经跃然纸上了。

(function() { const debug = true; // 调试模式开关 let processing = false; // 增强版日志系统 function debugLog(...args) { if (debug) console.debug('[KeyMapper]', ...args); } // 核心逻辑 document.addEventListener('keydown', async function(e) { if (!isTargetCombo(e)) return; e.preventDefault(); e.stopImmediatePropagation(); if (processing) { debugLog('阻止重复触发'); return; } processing = true; debugLog('开始处理组合键', `方向:${e.key}`); try { // 第一阶段:模拟 Ctrl+Shift+J await simulatePhysicalKeystrokes([ {key: 'Control', type: 'down'}, {key: 'Shift', type: 'down'}, {key: 'j', type: 'press'}, // 包含down和up {key: 'Shift', type: 'up'}, {key: 'Control', type: 'up'} ]); // 第二阶段:模拟 Ctrl+方向键 await simulatePhysicalKeystrokes([ {key: 'Control', type: 'down'}, {key: e.key.replace('Arrow', ''), type: 'press'}, {key: 'Control', type: 'up'} ]); debugLog('全部操作完成'); } catch (err) { console.error('模拟失败:', err); } finally { processing = false; } }); // 组合键检测 function isTargetCombo(e) { return e.ctrlKey && e.shiftKey && e.altKey && ['ArrowUp','ArrowDown'].includes(e.key); } // 物理按键模拟器(改进版) async function simulatePhysicalKeystrokes(steps) { return new Promise(resolve => { const target = document.activeElement; let stepIndex = 0; function processNext() { if (stepIndex >= steps.length) { debugLog('步骤完成'); return resolve(); } const {key, type} = steps[stepIndex++]; const isDown = type === 'down' || type === 'press'; const isUp = type === 'up' || type === 'press'; const eventType = isDown ? 'keydown' : 'keyup'; // 构建事件参数 const eventOptions = { key: key.toLowerCase(), code: key.startsWith('Arrow') ? key : `Key${key.toUpperCase()}`, keyCode: getKeyCode(key), bubbles: true, composed: true, ctrlKey: steps.some(s => s.key === 'Control' && s.type === 'down'), shiftKey: steps.some(s => s.key === 'Shift' && s.type === 'down') }; // 派发事件 if (isDown) { debugLog(`派发 ${eventType}:`, eventOptions); target.dispatchEvent(new KeyboardEvent(eventType, eventOptions)); } // 处理按下并立即释放的情况 if (type === 'press') { setTimeout(() => { debugLog(`派发 keyup:`, {...eventOptions, ctrlKey: false, shiftKey: false}); target.dispatchEvent(new KeyboardEvent('keyup', { ...eventOptions, ctrlKey: false, shiftKey: false })); setTimeout(processNext, 15); }, 30); } else { setTimeout(processNext, 15); } } processNext(); }); } // 键码映射表 function getKeyCode(key) { const map = { 'Control': 17, 'Shift': 16, 'j': 74, 'Up': 38, 'Down': 40 }; return map[key] || key.toUpperCase().charCodeAt(0); } })();
  • 思源笔记

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

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

    24744 引用 • 101680 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9372 引用 • 42686 回帖 • 113 关注
2 操作
xqh042 在 2025-03-24 07:39:41 更新了该帖
xqh042 在 2025-03-24 07:32:15 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 647 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 23 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 567 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 33 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 1 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 75 关注
  • Gitea

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

    5 引用 • 16 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 1 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    267 引用 • 666 回帖 • 1 关注
  • Anytype
    3 引用 • 31 回帖 • 12 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    189 引用 • 1057 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 381 关注
  • NetBeans

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

    78 引用 • 102 回帖 • 700 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 3 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 412 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 27 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 431 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 652 关注
  • Postman

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

    4 引用 • 3 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 83 关注