2024 年 08 月
0 篇文章
嵌入SQL查询自定义字段
方法 1 效果//!jsreturn(async()=>{constsql=`select*fromblockswheretype='d'limit2;`;constresult=awaitquery(sql);render(result);functionrender(result){lethtml='';result.forEach(item=>{html+=`<divclass="protyle-
查询不在数据库中的文档
seehttps://ld246.com/article/1725076848647效果代码//!js//seehttps://ld246.com/article/1725076848647return(async()=>{////////主逻辑区//////////////待查询的 SQL 语句 constsql=`select*fromblocks--仅筛选文档块 wheretype='d'--查询某
/**获取配置里面的快捷键,并触发**/functiondispatchKeyEvent(functionName){letkeyInit=parseHotKeyStr(window.top.siyuan.config.keymap.general[functionName].custom);keyInit["bubbles"]=true;letkeydownEvent=newKeyboardEve
//用户名和密码,必须 constusername="";constpassword="";//设置浏览器安装路径,必须,如果填空,则使用 puppeteer 模式而不是 puppeteer-core//Windows 用户可能是"C:\\ProgramFiles\\Google\\Chrome\\Application\\chrome.exe",注意这里的路径要用\转义 constchromePath="/A
//加载时是否自动定位当前文档 constautoFocusTreeOnload=true;//等待标签页容器渲染完成后开始监听 whenElementExist('.layout__center').then(asyncelement=>{//等待笔记列表加载完毕 awaitsleep(40);//监听页签切换事件 observeTabChanged(element,(tab)=>{//折叠所有笔记,然后
(async()=>{//关联的数据库块 id,这里的 id 根据需要改成自己的 constavBlockId='20240727220211-p1awn4b';//关联的图表块 id,这里的 id 根据需要改成自己的 constchartBlockId='20240805130000-vhz1aei';//自动刷新延迟,单位是毫秒,默认是 1 秒,0 则不自动刷新 constautoFreshDelay=1000;//定
{{{row{{{col> 美好心情 >{:id="20240805215037-7pvy56y"updated="20240805215037"}>>{:id="20240805215037-o29paki"updated="20240805215037"}>{:custom-b=""id="20240805215037-9ajqisa"style="margin:0;padding:0!import
//seehttps://ld246.com/article/1723109908986(()=>{//注入样式,模拟激活标签的样式,可根据自己的样式进行调整 addStyle(`.layout__wnd--active.layout-tab-bar.item--pin--focus:after{background-color:var(--b3-theme-primary);}.layout-tab
//功能:代码块最近使用的语言置顶(async()=>{//配置默认的代码语言,注意如果设置了这个参数,则会覆盖上一次使用的语言。始终默认用这个语言,为空不设置 constdefaultCodeLang="";//配置最近代码语言最大显示个数 constrecentlyCodeLangLength=10;//配置置顶的代码语言,这个配置里的语言始终置顶,比如["js","java","php"]lett
//功能:代码块最近使用的语言置顶(async()=>{//配置默认的代码语言,注意如果设置了这个参数,则会覆盖上一次使用的语言。始终默认用这个语言,为空不设置 constdefaultCodeLang="";//配置最近代码语言最大显示个数 constrecentlyCodeLangLength=10;//配置置顶的代码语言,这个配置里的语言始终置顶,比如["js","java","php"]lett
//功能:模拟 window.prompt 函数//使用示例/*showPrompt('请输入一些文本','',(answer)=>{console.log(` 你输入的内容是:${answer}`);},()=>{console.log('操作已取消');});*//*showPromptForm('请输入一些文本',`<inputtype="text"id="promptName"placeholde
//js 实现斜杠菜单展开并支持左右方向键(()=>{//使用兼容模式,//如果左右箭头有问题,可以使用兼容模式,兼容模式用 ctrl/cmd+ 方向键移动//默认 false,未开启,设为 true 开启 constuseCompatibilityMode=false;//搜索时,虚拟分组列表跳转位置//currpos 直接跳转到下一列的相同位置//first 跳转到下一列的第一个元素那里,默认 firstconst
curl 版 curl'https://ld246.com/activity/daily-checkin?token=IKmp4QRB1S9g&v=2'-H'accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-e
要从 pgrep-fl命令的输出中提取--port后面的端口号,您可以使用 awk或 sed来处理文本。下面我会给出两种方法:使用 awkawk是一个非常强大的文本处理工具,可以用来提取或修改文本文件中的数据。您可以使用 awk来分割命令行参数,并仅保留您需要的部分。pgrep-flSiYuan-Kernel|awk-F'''{for(i=1;i<=NF;i++)if($i~/--port/)
思源使用技巧
H 标题升级和降级问题:有时候设置了一堆标题等级比如说 H3,后来发现要把所有 H3 改成 H2,有没有办法一次性修改?答案:在所有 H3 前插入一个 H2,然后在 H2 的块标里使用带子标题转换转换为 H1,然后所有子标题就会提升一级,同样的方法也可以降级。seehttps://ld246.com/article/1722951780875嵌入块里面使用 js查询我猜很多人不知道嵌入块里面是可以运行 js 代码的,只需
runjs文档
本插件的意义在于,将插件的一些能力扩展到全局,从而方便用户在思源内部就能开发一些「微插件」来增强思源的功能。1.运行一个代码块基本用法新建一个 javascript 代码块点击「块菜单——>RunJS——> 运行代码」插件将自动运行代码块中的代码除此之外,插件还可以通过快捷键方式来运行 js 代码块,将光标聚焦在代码块中,然后按 alt+F5 即可运行当前的代码块。以下是一个测试样例:console.log(si
用 Savor Callout 插件实现康奈尔笔记和九宫格笔记模板
实现原理,就是通过思源的超级块实现。实现效果康奈尔笔记 733x4851806x1196 九宫格 733x4891680x1120 模板代码康奈尔笔记{{{row{{{col> 线索灵感 >{:id="20240731033625-k9eo0rn"updated="20240731034038"}>>{:updated="20240731033637"id="20240731033637-r9op5c5"}>{
思源实现图表和数据库联动
效果如下 655x5191820x1442 原理:通过 echarts 中的脚本,动态获取数据库块的数据,然后把数据再格式化为图表的数据,就可以了。同时会监听数据库块的变化,当有数据更新时,图表会刷新并重新获取数据库的数据。完整代码如下(代码输入到 echarts 块中)(async()=>{//关联的数据库块 id,这里的 id 根据需要改成自己的 constavBlockId='20240727220211-p1a
TheSpriglibraryprovidesover70templatefunctionsforGo’stemplatelanguage.StringFunctions:trim,wrap,randAlpha,plural,etc.StringListFunctions:splitList,sortAlpha,etc.IntegerMathFunctions:add,max,mul
functionfetchGet(url,callback){fetch(url).then((response)=>{if(response.headers.get("content-type")?.indexOf("application/json")>-1){returnresponse.json();}else{returnresponse.text();}}).then((response