思源笔记 0 篇文章

js 代码片段实现,只聚焦当前文档所在的目录树

js 代码片段实现,只聚焦当前文档所在的目录树
需求在使用“始终定位打开的文档”功能时,只展开当前文档的文档树,自动关闭(不展开)其它无关的文档树。例如:有笔记本 A,内有文档 A1,子文档 A2、子子文档 A3。有笔记本 B,内有文档 B1,子文档 B2、子子文档 B3。已将文档 A2、B2 打开,显示在上方页签栏中。启用“始终定位打开的文档”功能。点击 A2 页签,左侧文档树自动展开,并定位到 A-A1-A2;A3 列表不展开点击 B2 页签,左侧文档树自动展开,定位到 B-

SQL 大全

查询某一个子文档下面不含标签的文档 seehttps://ld246.com/article/1723590423117SELECT*FROMblockswheretype='d'andpathlike'%20240725203634-j3t72jv/%'andtag=''andidnotin(SELECTroot_idFROMblockswheretype<>'d'andpathlike'%2024

常用函数

‍functionwaitFor(conditionFn,timeoutMs=5000){returnnewPromise((resolve,reject)=>{conststart=Date.now();constcheck=()=>{if(typeofconditionFn==='string')conditionFn=()=>document.querySelector(conditionFn

思源后端 API 文档

https://github.com/siyuan-note/siyuan/blob/master/kernel/api/router.go 事件总线文档所有事件总线 English 规范参数和返回值鉴权笔记本列出笔记本打开笔记本关闭笔记本重命名笔记本创建笔记本删除笔记本获取笔记本配置保存笔记本配置文档通过 Markdown 创建文档重命名文档删除文档移动文档根据路径获取人类可读路径根据 ID 获取人类可读路径根

通用监听元素变化 observeElement

//调用示例//observeElement('.tooltip.tooltip--memo:not(.fn__none)',({element,mutationsList,stop})=>{//console.log([element?.outerHTML,mutationsList,stop]);//});asyncfunctionobserveElement(selector,callback

js 检查自身更新

从当前脚本中提取 name​和 version​获取该脚本的远程地址(即 <scriptsrc="remote.js">​的地址)从远程地址获取远程版本号(假设远程 JS 文件开头也有注释定义)比较本地版本和远程版本如果远程版本更新,就提示用户是否需要更新 ✅ 总结:不需要下载新版本,只做提示。当前使用的脚本是本地引入的(例如:<scriptsrc="/local/your-script.js">​),但这个 js

代码片段自动更新 checkNewVersion

代码片段自动更新 checkNewVersion
鉴于代码片段无法检查更新,写了个自动更新的函数,只要在代码加载时调用 checkNewVersion();​即可。格式内容使用这个函数需遵循以下格式即可。代码片段的注释中必须有 name,version,updateUrl 三个标记比如//name 代码名称//version 版本号//updateUrl 更新地址//updateDesc 更新描述或/***name 代码名称*version 版本号*updateUr

通过数据库块 ID 获取数据库 ID

方法一、通过数据库里的 html 代码获取//通过块 id 获取数据库 idasyncfunctiongetAvIdByAvBlockId(blockId){constav=awaitgetAvBySql(`SELECT*FROMblockswheretype='av'andid='${blockId}'`);if(av.length===0)returnerror("未找到数据库文档块,请检查数据库文档块 i

读取关联数据表的数据并汇总

seehttps://ld246.com/article/1746316072165 需求:有两个数据表,A 为任务表,B 为工时记录表,A 中有一列为任务名称,B 关联 A 的任务名称。一个任务可能需要多次工作完成,每次工作都会在 B 中记录一次使用的工时。A 的任务表中有一列为总共花费的工时,会读取 B 中所有任务名相同的行,并将每行的工时汇总,写到 A 对应的总共花费的工时中。请问这样的模板列该怎么实现呢?我不知道如何从

不用插件:绑定思源事件总线(eventBus)

简洁版(不推荐,有风险)优点:代码简洁。缺点:要求用户至少安装一个插件。⚠️ 风险警告:当用户关闭第一个插件时,之前的绑定会失效。functioneventBusOn(eventName,callback){constplugin=window.siyuan.ws.app.plugins[0];if(!plugin){console.log('绑定事件'+eventName+'失败,请至少安装一个插件

js 代码片段自动更新协议 1.0

js 代码片段自动更新协议 1.0
鉴于代码片段无法检查更新,写了个自动检查更新的代码片段。只要用户安装了该代码片段,且开发者代码片段中遵循以下协议即可。协议内容要让你的代码片段能自动检查更新,需遵循以下协议:代码片段的注释中必须有 name,version,updateUrl 三个标记比如//name 代码名称//version 版本号//updateUrl 更新地址//updateDesc 更新描述或/***name 代码名称*version 版