实际场景:
我在很多文档的末尾,引用了同一个块。在该块的反链面板中,显示的只是引用的那一行,并不包含上下文。
想要查看上下文,还需要再点击一下 反链面板中的“上下文”或面包屑。
文档数量多了之后,挨个点击太费事了。
有没有办法可以:在反链面板中自动展开上下文,或 一键展开所有文档的上下文?
实际场景:
我在很多文档的末尾,引用了同一个块。在该块的反链面板中,显示的只是引用的那一行,并不包含上下文。
想要查看上下文,还需要再点击一下 反链面板中的“上下文”或面包屑。
文档数量多了之后,挨个点击太费事了。
有没有办法可以:在反链面板中自动展开上下文,或 一键展开所有文档的上下文?
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
在窗口上面增加两个按钮, 全部折叠和全部展开
// [js] 折叠/展开所有反链结果
(() => {
// 定义目标元素和要插入的 HTML 内容
const targetId = "searchPath";
const insertHTML = `
<span id="foldAllAntiChainRes" class="block__icon block__icon--show b3-tooltips b3-tooltips__sw" aria-label="折叠全部"><svg><use xlink:href="#iconContract"></use></svg></span>
<span id="expandAllAntiChainRes" class="block__icon block__icon--show b3-tooltips b3-tooltips__sw" aria-label="展开全部"><svg><use xlink:href="#iconExpand"></use></svg></span>
`;
// 创建函数来检查元素并添加内容和事件监听
function checkAndAddElements() {
document.querySelectorAll('.block__popover--open [data-type="pin"]').forEach((pin_ele) => {
// 确保只执行一次
if (pin_ele.parentElement.querySelector("#foldAllAntiChainRes")) return;
// 在 pin_ele 前插入内容
pin_ele.previousElementSibling.insertAdjacentHTML('beforebegin', insertHTML);
// 添加点击事件监听
pin_ele.parentElement.querySelector("#foldAllAntiChainRes").addEventListener("click", () => {
console.log("折叠全部反链");
// 在这里实现折叠功能
pin_ele.parentElement.parentElement.querySelectorAll('[data-type="context"]:not(.fn__none).block__icon--active').forEach(arr => {
arr.click()
})
});
pin_ele.parentElement.querySelector("#expandAllAntiChainRes").addEventListener("click", () => {
console.log("展开全部反链");
// 在这里实现展开功能
pin_ele.parentElement.parentElement.querySelectorAll('[data-type="context"]:not(.fn__none, .block__icon--active)').forEach(arr => {
arr.click()
})
});
})
}
// 使用 MutationObserver 监测 DOM 变化
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.type === 'childList') {
checkAndAddElements(); // 每次子节点变化时检查
}
});
});
// 配置观察选项
const config = { childList: true, subtree: true };
// 开始观察 body 节点
observer.observe(document.body, config);
// 初始检查
checkAndAddElements();
})()
“梦想从学习开始,事业从实践起步” —— 习近平
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。
App(应用程序,Application 的缩写)一般指手机软件。
Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper
webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。
Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。
房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。
Postman 是一款简单好用的 HTTP API 调试工具。
WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。
程序员是从事程序开发、程序维护的专业人员。
ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。
CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。
面试造航母,上班拧螺丝。多面试,少加班。
你听到信仰的声音了么?
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。
愿逝者安息!
微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。
单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于