思源笔记 0 篇文章

编辑器 toolbar 被添加事件

编辑器 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

请求 api

请求 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 的正确方式

调用 Lute 的正确方式 seehttps://github.com/siyuan-note/siyuan/issues/14310seehttps://ld246.com/article/1741527865453‍调用方式:getLute().Md2BlockDOM(xxxxx);​封装函数如下:functiongetLute(){constsetLute=(options)=>{constlute

插件开发

插件开发插件开发快速指南 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')​文档层级导航插件,设置启用显示正向链接,可以查看文档级正链反链过滤面板插件,设置定义块范围

模拟官方 showMessage 函数

模拟官方 showMessage 函数 functionshowMessage(message,timeout=6000,type="info",messageId){constmessagesElement=document.getElementById("message").firstElementChild;if(!messagesElement){alert(message);return;}co

用 Savor Callout 插件实现康奈尔笔记和九宫格笔记模板

用 Savor Callout 插件实现康奈尔笔记和九宫格笔记模板
用 SavorCallout 插件实现康奈尔笔记和九宫格笔记模板实现原理,就是通过思源的超级块实现。实现效果康奈尔笔记​​733x4851806x1196 九宫格​​733x4891680x1120 模板代码康奈尔笔记{{{row{{{col> 线索灵感 >{:id="20240731033625-k9eo0rn"updated="20240731034038"}>>{:updated="20240731033

用 SQL 查询数据并写入到剪切板

用 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 不关闭锁定标签代码片段

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 实现斜杠菜单展开并支持左右方向键//js 实现斜杠菜单展开并支持左右方向键(()=>{//使用兼容模式,//如果左右箭头有问题,可以使用兼容模式,兼容模式用 ctrl/cmd+ 方向键移动//默认 false,未开启,设为 true 开启 constuseCompatibilityMode=false;//搜索时,虚拟分组列表跳转位置//currpos 直接跳转到下一列的相同位置//first 跳转到下一列的第一