awaitopenAPI.siyuan.openTab({app:siyuan.ws.app,doc:{id:'文档或块 id',//当是块 id 时自动聚焦}});
带块 id 的剪切
seehttps://ld246.com/article/1744246860602 功能说明块右键菜单增加剪切块操作,剪切时不会丢掉块的 id(自带剪切会丢掉块 id)。本质还是移动操作,只不过比自带移动操作方便,支持具体移动到哪个位置(自带移动只能指定移动到哪个文档)。支持手机版不会出现重复 ID 使用说明注意:只能在块菜单中操作(你的右键可能不是块菜单)缺点:不支持撤销(官方移动也不支持撤销)代码 htt
seehttps://ld246.com/article/1736616348929 思源笔记默认的块操作 api 不支持撤回,需要额外使用 Transaction 来实现撤回操作只更新一个块 updateTransactionawaitupdateBlock('dom',updatedDom,blockId);protyle.getInstance().updateTransaction(blockId,u
githubhttps://github.com/siyuan-note/siyuan/releases 链滴 https://ld246.com/member/siyuan/articles
seehttps://ld246.com/article/1744145263614 获取文档 kramdown 全文 awaitfetchSyncPost('/api/block/getBlockKramdown',{id:'文档 id'})更新文档全文(有{:id=""}在 id 不会变)awaitfetchSyncPost('/api/block/updateBlock',{"dataType":"mark
外行人理解机器学习什么是参数我用更简单的语言来解释参数是什么。参数是什么?想象一下,你正在教一个机器人学会识别猫和狗。你给机器人看很多猫和狗的照片,并告诉它哪些是猫,哪些是狗。机器人需要从这些照片中学习规律,比如:猫的耳朵通常是尖的。狗的耳朵通常是垂下来的。参数就是机器人用来记住这些规律的“小本本”。每个规律都写在这个“小本本”上,比如:耳朵尖的程度有多重要?耳朵垂下来的程度有多重要?这些“小本本”
图片批量压缩工具推荐工具:https://www.imgdiet.com/zh-CN/compresshttps://www.iplaysoft.com/tuya.html#google_vignettehttps://zhuanlan.zhihu.com/p/343806630自己写工具:https://github.com/fengyuanchen/compressorjsDownloadFF
seehttps://ld246.com/article/1744171314503 数据库功能简介数据库功能有什么使用场景吗?任务管理数据库模版分享思源笔记数据库使用新思路:谈自上而下管理与自下而上积累基于思源笔记的数据库使用分享(附模板)突然发现数据库可以完全替代 Todo!太棒了!将反向链接和数据库结合的尝试大家平时是如何使用数据库的?数据库使用新方法-任务时间追踪
//根据 paths 展开文件夹 functionexpandFolderByPaths(paths,box){//遍历 paths 并展开对应的文件夹 paths.forEach(asyncpath=>{//将路径按/分割,获取每个层级的 node-idconstparts=path.split('/');constfolderIds=parts.slice(1,-1);//最后一个是文件,不需要展开//逐层查
asyncfunctiongetFile(path){returnfetch("/api/file/getFile",{method:"POST",headers:{"Content-Type":"application/json",},body:JSON.stringify({path,}),}).then((response)=>{if(response.ok){//返回 Blob 对象而不是文本 r
//democonsole.log(siyuan);console.log(plugin);console.log(client);console.log(thisBlock);asyncfunctionmain(){constresponse=awaitclient.pushMsg({msg:"Thisisanotificationmessage",timeout:7000,});console.
选择器:scope 在 CSS 选择器中,:scope是一个伪类(pseudo-class),用于表示当前元素的作用域。它的作用是限制选择器的范围,使其相对于某个特定的上下文(通常是某个 DOM 元素)进行匹配。什么是:scope?:scope表示当前上下文中的“根元素”。在 querySelector或 querySelectorAll中使用时,:scope通常指代调用方法的那个 DOM 元素本身
防抖和节流在 JavaScript 中,防抖(debounce)和节流(throttle)是两种常见的函数执行优化策略,通常用于处理高频触发的事件,如窗口的 resize 或 scroll 事件等,以提高性能和用户体验。防抖(Debounce)防抖是指将一段时间内多次触发的事件合并为一次执行。当最后一次触发事件后的一段时间内没有再次触发,则执行该事件处理函数。如果在这段时间内又有新的触发,则重新计算延迟时间。即
统计工作时长方案 1 是的,你可以利用 requestIdleCallback 实现一个工作时长统计功能,记录用户在页面上的活动时间。requestIdleCallback 可以在浏览器空闲时执行任务,因此非常适合用于记录用户在页面上的活动时间。实现思路记录开始时间:当用户进入页面时,记录当前时间作为开始时间。使用 requestIdleCallback:在浏览器空闲时更新工作时长。计算工作时长:每次更新时,计
除了 load 和 DOMContentLoaded 还有哪些方法可以判断页面加载完成除了 window.addEventListener("load")和 document.addEventListener('DOMContentLoaded')之外,还有其他方法可以判断页面加载完成。以下是一些常见的方法:使用readystatechange事件:readystatechange事件会在文档的读
纯 JavaScript 实现 AES 加密如果你既不想使用 crypto.subtle也不愿意使用第三方库,那么你需要自己编写加密和解密的逻辑。这通常涉及使用纯 JavaScript 实现加密算法。虽然这种方法不如使用标准库或第三方库安全和高效,但对于简单的场景可能足够使用。使用纯 JavaScript 实现 AES 加密 AES 加密算法相对复杂,但我们可以尝试使用一些纯 JavaScript 的方法来实现一个简单的加密和
版本号比较 functioncompareVersions(version1,version2){//将版本号按.分割为数组 constv1=version1.split('.').map(Number);constv2=version2.split('.').map(Number);//逐位比较 for(leti=0;i<Math.max(v1.length,v2.length);i++){//如果当前
等待元素渲染完毕执行和 sleep//延迟执行 functionsleep(ms){returnnewPromise(resolve=>setTimeout(resolve,ms));}//等待元素渲染完成后执行 functionwhenElementExist(selector){returnnewPromise(resolve=>{constcheckForElement=()=>{letelemen
如何实现一个网页版的剪映(上)本文研究了网页版剪映是如何实现的,并写了简易的 demo,WebCodes 进行编解码,web - 掘金
如何实现一个网页版的剪映(上)本文研究了网页版剪映是如何实现的,并写了简易的 demo,WebCodes 进行编解码,web-掘金如何实现一个网页版的剪映(上)本文研究了网页版剪映是如何实现的,并写了简易的 demo,WebCodes 进行编解码,web-掘金 https://juejin.cn/post/7444840280850808851 本文研究了网页版剪映是如何实现的,并写了简易的 demo,WebCo
记录精彩的程序人生
开始使用
分类
标签