思源笔记
0 篇文章
编辑器 toolbar 被添加事件 toolbar 被添加事件(async()=>{observeToolbar((el)=>{console.log(el,'toolbar');});//监听 toolbar 被添加 functionobserveToolbar(callback){//创建一个观察者实例并传入回调函数 constobserver=newMutationObserver((mutationsLis
获取光标所在元素又名获取鼠标所在元素 functiongetCursorElement(){constselection=window.getSelection();if(selection.rangeCount>0){constrange=selection.getRangeAt(0);//获取选择范围的起始位置所在的节点 conststartContainer=range.startContaine
获取选中文字所在的元素?如果跨多个元素呢?在 JavaScript 中获取选中文字所在的元素可以通过 window.getSelection()方法来实现。此方法返回一个 Selection对象,该对象提供了有关当前文档中选定文本的信息。如果选中的文本跨越了多个元素,可以通过 Selection对象的 getRangeAt()方法来获取选定范围的信息。getRangeAt()方法返回一个 Range对
获取选中文本获取选中文本可以通过 JavaScript 的 window.getSelection()方法来实现。这个方法返回一个 Selection对象,它包含了当前文档中选定的文本信息。你可以从这个对象中获取选定的范围,并从中提取出选定的文本。下面是一个简单的示例,展示了如何获取用户选定的文本,并将其输出到控制台或页面上的某个元素中:HTML 示例代码 <!DOCTYPEhtml><htmllang="
行内自定义元素和属性
行内自定义元素和属性 seehttps://github.com/siyuan-note/siyuan/issues/13325 关联:块自定义元素和属性只能用 span,且不能嵌套,只能叠加自定义属性 custom-xxx 和 data-type 值修改或生成后,需要调用 input 事件触发比如:letmemoELement=document.querySelector(`span[data-id="${ne
请求 apifunctionfetchGet(url,callback){fetch(url).then((response)=>{if(response.headers.get("content-type")?.indexOf("application/json")>-1){returnresponse.json();}else{returnresponse.text();}}).then((res
调用 Lute 的正确方式 seehttps://github.com/siyuan-note/siyuan/issues/14310seehttps://ld246.com/article/1741527865453调用方式:getLute().Md2BlockDOM(xxxxx);封装函数如下:functiongetLute(){constsetLute=(options)=>{constlute
通过监听 siyuan.editorIsFullscreen 对象变化判断是否全屏//定义一个可观察的属性 window.siyuan._editorIsFullscreen=window.siyuan.editorIsFullscreen||false;Object.defineProperty(window.siyuan,'editorIsFullscreen',{get:function(){ret
插件开发插件开发快速指南 https://docs.siyuan-note.club/zh-Hans/guide/plugin/sy-plugin-dev-quick-start.html 后端 api 接口 https://github.com/siyuan-note/siyuan/blob/master/kernel/api/router.go
查看文档的正向链接 seehttps://ld246.com/article/1733727390265Imuvux•3 分钟前订阅者付费者 SQL 查询当前文档引用块:select*fromblockswhereidin(selectdef_block_idfromrefswhereroot_id='文档 ID')文档层级导航插件,设置启用显示正向链接,可以查看文档级正链反链过滤面板插件,设置定义块范围
查询不在数据库中的文档
查询不在数据库中的文档 seehttps://ld246.com/article/1725076848647效果代码//!js//seehttps://ld246.com/article/1725076848647return(async()=>{////////主逻辑区//////////////待查询的 SQL 语句 constsql=`select*fromblocks--仅筛选文档块 where
模拟官方 showMessage 函数 functionshowMessage(message,timeout=6000,type="info",messageId){constmessagesElement=document.getElementById("message").firstElementChild;if(!messagesElement){alert(message);return;}co
用 Savor Callout 插件实现康奈尔笔记和九宫格笔记模板
用 SavorCallout 插件实现康奈尔笔记和九宫格笔记模板实现原理,就是通过思源的超级块实现。实现效果康奈尔笔记733x4851806x1196 九宫格733x4891680x1120 模板代码康奈尔笔记{{{row{{{col> 线索灵感 >{:id="20240731033625-k9eo0rn"updated="20240731034038"}>>{:updated="20240731033
用 SQL 查询数据并写入到剪切板 seehttps://ld246.com/article/1726473563881//!jsreturn(async()=>{///////主逻辑区/////////sql 查询 constsql=`selectmarkdownfromblockswheretype='p'andmarkdownlike'% 工具 %'`;constresult=awaitquery(sql
给编辑器增加标尺
给编辑器增加标尺//功能:给编辑器增加标尺//seehttps://ld246.com/article/1725849206361(()=>{////////////配置区//////////////////////标尺的间隔大小,默认 50(50 代表 50px 高度)construlerGaps=50;////////////主逻辑区////////////////////addRulerStyle
编辑器被加载完毕或内容被修改事件(async()=>{observeEditorLoaded((editor)=>{console.log(editor,'editorloaded');});//监听编辑器被添加 letloading=false;functionobserveEditorLoaded(callback){//创建一个观察者实例并传入回调函数 constobserver=newMutat
ctrl+w 不关闭锁定标签代码片段//seehttps://ld246.com/article/1723109908986(()=>{//注入样式,模拟激活标签的样式,可根据自己的样式进行调整 addStyle(`.layout__wnd--active.layout-tab-bar.item--pin--focus:after{background-color:var(--b3-theme-prim
js 实现斜杠菜单展开并支持左右方向键//js 实现斜杠菜单展开并支持左右方向键(()=>{//使用兼容模式,//如果左右箭头有问题,可以使用兼容模式,兼容模式用 ctrl/cmd+ 方向键移动//默认 false,未开启,设为 true 开启 constuseCompatibilityMode=false;//搜索时,虚拟分组列表跳转位置//currpos 直接跳转到下一列的相同位置//first 跳转到下一列的第一
双击钉住 or 取消钉住文档
双击钉住 or 取消钉住文档(()=>{whenElementExist(".layout__center").then((el)=>{el.addEventListener('dblclick',(event)=>{consttab=event.target?.closest('li[data-type="tab-header"]');if(!tab)return;constprotyle=siy
大纲鼠标移入自动展开 1
大纲鼠标移入自动展开 1//seehttps://ld246.com/article/1727096963532(async()=>{whenElementExist('.sy__outline>.fn__flex-1').then(asyncel=>{//是否正在折叠中 letclosing=false;//监听 item 鼠标移入事件 el.addEventListener('mouseover',(
记录精彩的程序人生
开始使用
分类
标签