思源笔记
0 篇文章
适宜阅读人群前端开发已入门。如果没有的话建议查看入门指南进行仔细学习步骤找到你本地的思源的工作空间目录(WORKSPACE)使用你习惯的工具,在 WORKSPACE/data/plugins/下创建你的插件,例如名称 siyuan-plugin-example在 WORKSPACE/data/plugins/siyuan-plugin-example中创建五个文件:plugin.json,icon
api 参考这个插件向全局暴露一个变量,DV,即 DataView 的缩写(你也可以看成是对 siyuan 笔记开发者 D、V 的致敬)。这个变量是 Dataview 类的构造函数。它继承了 DataQuery 类,所以可以直接使用 DataQuery 的方法。初始化 letdv=newDV(protyle,item,top)DataView 类属性protyle:IProtyle-一个接口类型的属性,代表一个 Protyle
js 片段实现目录树自动展开 V0.0.2
看到论坛里有很多人表示希望有这个功能,今天也在看帖子讨论的过程中研究了一番,有一点思路,就试着实现了下。由于刚接触思源,插件还不会写,api 也不熟,所以选择用 js 片段实现,基本是纯原生 js 实现。主要功能:记住上次已展开的目录,下次打开或刷新时自动展开上次已展开的目录。实现原理:仅记录已展开目录的 data-path,笔记以 data-url 区分,以 object 嵌套的方式记录展开目录所在的层级关系。加载时
一键创建云端思源
在四个月前我创建了 https://github.com/2234839/siyuan_serverless 项目(求 star 最近发现腾讯这个云端 ide 有点搞头。它这个空间和一般的 serverless 的区别在于他是持久化的,所以到了之前创建的项目大显身手的时候了。1.点击下方按钮(没有帐号的随便选一个)ide.cloud.tencent.com:https://ide.cloud.tencent.co
思源 Chart 萌新使用指南
基础教程可参考:https://ld246.com/article/1630851751280 但由于该教程中的“百度图说”已经下线了,可以使用 https://www.lddgo.net/base/class?classID=6 这个网站代替。进阶教程如果 https://www.lddgo.net/base/class?classID=6 这个网站的图例无法满足你的需求,也可以参考官网示例。官网中,复制 j
思源块主类型,缩写列表及其对应的完整英文表示和中文翻译:缩写英文全称中文翻译 audioAudioBlock 音频块 avAttributeview 属性表(数据库块)bBlockquote 引述块 cCodeBlock 代码块 dDocumentBlock 文档块 hHeading/TitleBlock 标题块 htmlHTMLBlockHTML 块 iListItem 列表项 iframeIframeBlockIframe 块 l
seehttps://ld246.com/article/1735467806997 绿色版,可以试试这两个帖子中所说的方法,我没有试过不知是否可行 https://ld246.com/article/1708223009893https://ld246.com/article/1617534454945 仅启动内核,应该启动 SiYuan-Kernel.exe 就可以了,亲测可行比如,C:\Users\A
seehttps://ld246.com/article/1733365731025 数据库添加非绑定的块和属性值/api/av/appendAttributeViewDetachedBlocksWithValueavID:数据库 id,非块 idblocksValueslist,数据库要添加的行 blocksValues 是个二维数组,对应表格视图的行列参数中的值可以参考源码 kernel/av/value.
functionfetchGet(url,callback){fetch(url).then((response)=>{if(response.headers.get("content-type")?.indexOf("application/json")>-1){returnresponse.json();}else{returnresponse.text();}}).then((response
seehttps://ld246.com/article/1746079460404//全屏菜单(Esc 退出全屏)//seehttps://ld246.com/article/1746079460404(()=>{//判断是否全屏状态 if(localStorage.getItem('isFullscreen')==='true'){constcomfirmHtml=`<divdata-key="di
seehttps://ld246.com/article/1745899596632require('@electron/remote/main').enable(window)const{BrowserWindow}=require('@electron/remote')constallWindows=BrowserWindow.getAllWindows()allWindows.forEach(
//创建全局唯一 markerconstglobalMarker=(()=>{constmarker=document.createElement('span');marker.textContent='\u200b';marker.style.cssText='position:absolute;visibility:hidden;pointer-events:none;';returnmarker
真正能在滚动时拿到光标“位置更新”同时又最轻量的做法,其实是不每次都去测 Selection→getClientRects()或插入 marker,而是直接把上一次的坐标做“增量”调整。核心思路:基于滚动偏移的增量更新缓存上一次的绝对坐标 letlastPos={x:/*上次 computedx*/,y:/*上次 computedy*/};letlastScroll=newMap();//key:scroll
最近看到一则关于工具体验的讨论,虽然不完全与原帖相关,但我想借这个机会,谈谈我对工具的一些看法和使用哲学。一、工具就是工具,关键在于人我一直认为:工具本身就是中立的,它就在那里,不增不减。你觉得一个工具“顺手”或“难用”,其实更多取决于你自己是否熟悉、是否懂得如何使用它。正如同样是 DeepSeek,有人觉得它惊艳,有人却觉得不过如此。原因不在工具,而在使用者。以 DeepSeek 为例,在它出现之前,我
HTML 代码块和数据库联动
seehttps://ld246.com/article/1748432027805<div><style>/*根容器*/.container{display:flex;justify-content:space-between;margin:20px;max-width:830px;}/*卡片样式*/.card{width:200px;height:200px;border-radius:10px
记录精彩的程序人生
开始使用
分类
标签