如果搜索不出来内容, 按回车会新建文档
有什么办法能取消创建新文档这个动作么
如果搜索不出来内容, 按回车会新建文档
有什么办法能取消创建新文档这个动作么
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。
用户在该标签下分享代码片段时需在帖子标题前添加 [css]
或 [js]
用于区分代码片段类型。
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
改变 dataset 类型值就好了,如下代码
// 搜索不到时回车不新建文档(鼠标点击可新建)
// see https://ld246.com/article/1743579723972
(()=>{
observeSearchNewDocDom((searchNew) => {
// 加载时修改类型
searchNew.dataset.type = 'search-new-disabled';
// 点击时恢复类型
searchNew.addEventListener('click', function(event) {
searchNew.dataset.type = 'search-new';
});
searchNew.querySelector('.b3-list-item__meta').textContent = '点击创建';
if(searchNew.nextElementSibling && searchNew.nextElementSibling.matches('.search__empty')) {
searchNew.nextElementSibling.textContent = `搜索结果为空,点击创建新文档`;
searchNew.nextElementSibling.addEventListener('click', function(event) {
searchNew.click();
});
}
});
function observeSearchNewDocDom(callback) {
// 创建一个观察者实例并传入回调函数
const observer = new MutationObserver(async (mutationsList, observer) => {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(node => {
// 监控搜索新建文档dom被加载
if (node.nodeType === 1 && node.matches('#searchList [data-type="search-new"]')) {
callback(node);
}
});
}
}
});
// 配置观察选项:
const config = {
childList: true, // 观察子节点的变化(添加/删除)
subtree: true, // 观察所有后代节点
attributes: false,
};
// 选择需要观察变动的节点
const targetNode = document.body; // 或者选择更具体的父节点以减少性能消耗
// 开始观察目标节点
observer.observe(targetNode, config);
// 返回一个取消观察的方法
return () => observer.disconnect();
}
})();
该代码回车不创建文档,点击创建,保留了一部分原本功能。
用 CSS 隐藏这个新建文档按钮试一下
改变 dataset 类型值就好了,如下代码
// 搜索不到时回车不新建文档(鼠标点击可新建)
// see https://ld246.com/article/1743579723972
(()=>{
observeSearchNewDocDom((searchNew) => {
// 加载时修改类型
searchNew.dataset.type = 'search-new-disabled';
// 点击时恢复类型
searchNew.addEventListener('click', function(event) {
searchNew.dataset.type = 'search-new';
});
searchNew.querySelector('.b3-list-item__meta').textContent = '点击创建';
if(searchNew.nextElementSibling && searchNew.nextElementSibling.matches('.search__empty')) {
searchNew.nextElementSibling.textContent = `搜索结果为空,点击创建新文档`;
searchNew.nextElementSibling.addEventListener('click', function(event) {
searchNew.click();
});
}
});
function observeSearchNewDocDom(callback) {
// 创建一个观察者实例并传入回调函数
const observer = new MutationObserver(async (mutationsList, observer) => {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(node => {
// 监控搜索新建文档dom被加载
if (node.nodeType === 1 && node.matches('#searchList [data-type="search-new"]')) {
callback(node);
}
});
}
}
});
// 配置观察选项:
const config = {
childList: true, // 观察子节点的变化(添加/删除)
subtree: true, // 观察所有后代节点
attributes: false,
};
// 选择需要观察变动的节点
const targetNode = document.body; // 或者选择更具体的父节点以减少性能消耗
// 开始观察目标节点
observer.observe(targetNode, config);
// 返回一个取消观察的方法
return () => observer.disconnect();
}
})();
该代码回车不创建文档,点击创建,保留了一部分原本功能。
Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。
HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。
NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。
Latke 是一款以 JSON 为主的 Java Web 框架。
Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。
这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
安全永远都不是一个小问题。
RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。
有空闲时间是接外包好呢还是学习好呢?
Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。
有点意思就行了
智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。
Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。
Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。
OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用 。
Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper