思源 0 篇文章

刷新数据库 api

/api/sqlite/flushTransaction​seehttps://ld246.com/article/1733634555319#%E8%83%BD%E4%B8%8D%E8%83%BD%E7%A7%BB%E5%8A%A8%E5%90%8E%E5%8D%B3%E6%97%B6%E5%88%B7%E6%96%B0sqlite%E6%95%B0%E6%8D%AE%E5%BA%93await(

常用 css

给 emoji 修改颜色.emoji{color:transparent;text-shadow:000#f2b05d;}给目录树排序.sy__fileul{display:flex;flex-direction:column;}/*带排序的 li 添加 order*/li{order:-1;}‍

批量折叠和展开标题

批量折叠和展开标题
该代码主要有以下几个功能:alt+ 点击标题前的箭头按钮,折叠/展开所有同级标题 ctrl/meta+alt+ 点击标题前的箭头按钮,折叠/展开所有标题选择情况下,仅折叠/展开已选择的部分的标题效果如下:代码//批量折叠和展开标题//使用方法://1.alt+ 点击标题前的箭头按钮,折叠/展开所有同级标题//2.ctrl/meta+alt+ 点击标题前的箭头按钮,折叠/展开所有标题//3.选择情况下,仅折叠/

js 获取鼠标所在元素

要确定鼠标当前位于哪个元素内,JavaScript 提供了几种方法。你可以通过监听 mousemove​事件并在事件处理函数中检查 event.target​来得知鼠标所在的元素。此外,还可以使用 document.elementFromPoint​方法来查找特定坐标下的最顶层元素。以下是两种常见的实现方式:使用 mousemove​事件你可以为整个文档或某个容器添加一个 mousemove​事件监听器,然后在

思源目录支持 shift+click 多选

seehttps://ld246.com/article/1733364742803(()=>{letlastClickedItem=null;functionhandleFileClick(event){if(!event.shiftKey){//普通点击,记录最后点击的项目 lastClickedItem=event.target.closest('li[data-type="navigation

监听 websocket channel

(()=>{//默认渠道名,可以根据需要修改 constchannel='siyuan-runjs';//创建 socket 客户端 createSocketClient(channel);//当收到消息时被调用 functiononReceivedMessage(event){letrequest=parseJson(event.data);letresult='';try{result=(newFunct

把用户自定义属性显示到块的右侧

//思源把用户自定义属性显示到块的右上侧//seehttps://ld246.com/article/1732940163490//version:0.0.2//更新记录//0.0.2 可自定义是否显示提示,可自定义属性白名单和黑名单//注意,打开属性面板通过模拟按键实现,如果修改了打开属性快捷键请修改 openCustomAttrsPage 函数的按键映射,否则可能无法模拟按键(()=>{//鼠标移上去

通过标签插入当前块到数据库(思源 SuperTag)

通过标签插入当前块到数据库(思源 SuperTag)
根据@qiancang 大佬的帖子实现,https://ld246.com/article/1731945645865 功能:给块设置标签,将块添加到标签同名的数据库,支持 pc,web 及手机版。注意事项:1、数据库名称需要与标签同名 2、如果有多个同名数据库,只会将块添加到其中一个,所以不要建立同名数据库 3、需要提前建立数据库才能添加成功代码如下:(把该代码添加到思源 js 代码片段中即可)//思源通过标签插

插件列表

https://github.com/siyuan-note/bazaar/blob/main/stage/plugins.jsonhttps://ld246.com/article/1736317841920 手机版插件‍

SQL 渲染指定字段

seehttps://ld246.com/article/1734109655384 版本 2//!js//查询最近 30 天创建的文档 return(async()=>{//sql 查询语句//查询过去去 30 天的文档 constsql=`SELECT*FROMblocksWHEREtype='d'ANDcreated>=strftime('%Y%m%d%H%M%S','now','localtime','-30

实现可手动修改数据库主键引用块的标题

实现可手动修改数据库主键引用块的标题
前言众所周知,思源数据库主键引用块或文档的标题是和块紧密关联的,无法自定义修改。看到小伙伴们有自定义标题的需求,于是根据此回复帖子的原理,实现了该功能。该功能可在不同的数据库下自定义不同的标题。效果演示代码//功能:修改数据库主键引用块的标题//版本:0.0.2//更新记录//0.0.1 初始版本,实现了可手动修改数据库主键引用块的标题//0.0.2 修复多个数据库切换焦点失效问题//问题反馈:http

常用函数

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

创建超级块

//layout 的值"col"|"row"//id 块 id 或自动生成//attrHTML 块 domfunctiongenSBElement(layout,id,attrHTML){constsbElement=document.createElement("div");sbElement.setAttribute("data-node-id",id||Lute.NewNodeID());sbElemen

常用判断函数

functionisTouchDevice(){return("ontouchstart"inwindow)&&navigator.maxTouchPoints>1;}functionisMobile(){return!!document.getElementById("sidebar");}functionisElectron(){returnnavigator.userAgent.include

模拟按键

functionpressKeyboard(keyInit,element){element=element||document.querySelector('[data-type="wnd"].layout__wnd--active.protyle:not(.fn__none).protyle-wysiwyg.protyle-wysiwyg--attr');keyInit["bubbles"]=t

表格模拟无序列表和任务列表

132 测试哈哈测试 1 测试 2✅ 已完成 ⬜ 待完成 ⬜ 待完成 ✅ 已完成 ▪️ 第一项 ▪️ 第二项 🔸 嵌套项 1🔸 嵌套项 2▪️ 第三项 seehttps://ld246.com/article/1724822503853/comment/1724826919618?r=wilsons#comments

实现图片旋转 翻转后保存

实现图片旋转 翻转后保存
前言看到论坛有不少小伙伴想要图片旋转/翻转后能保存覆盖原图片的功能。虽然可以通过打开菜单打开外部程序编辑,但终究没在思源内操作方便。最近研究了下,实现了这个功能。支持 jpg,png,webp,bmp,gif(非动画)。注意:该操作会覆盖原图,请严格测试后谨慎使用,操作前做好备份。效果使用方法下载 browser-image-compression.js 放到 data/public 目录或使用在线地址,也可