-
请问各位文档树的第三层级是否可以设置颜色或者线条包裹,结构更清晰
2025-05-08 18:51自己调一下颜色
.sy__file>.fn__flex-1>ul>ul>ul{background-color:red;}
-
建议在图片的右键菜单新增一个彻底删除
2025-05-08 18:46思源的图片是按照 id 来的, 两个地方使用同一个图片, 实际上 这个图片只有一份
如果有多个地方也用到了这个图片, 点某一个地方的彻底删除, 效果不管怎么样都不太合理
-
鼠标中键打开大纲
2025-04-26 11:23css 片段
/* [css片段] 多彩大纲竖线 */ :root { /* 竖线颜色 */ --vertical-line-color-1: var(--b3-font-color7); --vertical-line-color-2: var(--b3-font-color6); --vertical-line-color-3: var(--b3-font-color9); --vertical-line-color-4: var(--b3-font-color11); --vertical-line-color-5: var(--b3-font-color7); --vertical-line-color-6: var(--b3-font-color6); --vertical-line-color-7: var(--b3-font-color9); --vertical-line-color-8: var(--b3-font-color11); /* 文档缩进距离 */ --file-retract-length: 8px; /* 竖线括号没有对齐, 调这里 */ --bracket-retract-length: 4px; /* 竖线括号粗细 */ --vertical-line-bracket-width: 3px; /* 竖线括号圆角弧度 */ --bracket-border-radius: 8px; /* 折叠按钮宽度 */ --fold-button-width: 10px; } /* 大纲 */ /* 折叠按钮宽度 */ .sy__outline>.fn__flex-1>ul li>.b3-list-item__toggle { padding-left: var(--fold-button-width) !important; } /* 竖线 */ .sy__outline>.fn__flex-1>ul li { margin-bottom: -1px; border-top-left-radius: var(--bracket-border-radius); border-bottom-left-radius: var(--bracket-border-radius); } .sy__outline>.fn__flex-1>ul li:has(span:not(.fn__hidden)>svg.b3-list-item__arrow--open) { /* 有子文档的(折叠按钮没有隐藏&&打开), 下括号没有弧度 */ border-bottom-left-radius: 0px; } .sy__outline>.fn__flex-1>ul ul { padding-left: var(--file-retract-length); margin-left: var(--bracket-retract-length); border-top-left-radius: 0px; border-bottom-left-radius: var(--bracket-border-radius); } /* 竖线颜色 */ .sy__outline>.fn__flex-1>ul li:has(span), .sy__outline>.fn__flex-1>ul ul { border-left: var(--vertical-line-bracket-width) solid var(--vertical-line-color-1); } .sy__outline>.fn__flex-1>ul>ul li, .sy__outline>.fn__flex-1>ul>ul ul { border-left: var(--vertical-line-bracket-width) solid var(--vertical-line-color-2); } .sy__outline>.fn__flex-1>ul>ul>ul li, .sy__outline>.fn__flex-1>ul>ul>ul ul { border-left: var(--vertical-line-bracket-width) solid var(--vertical-line-color-3); } .sy__outline>.fn__flex-1>ul>ul>ul>ul li, .sy__outline>.fn__flex-1>ul>ul>ul>ul ul { border-left: var(--vertical-line-bracket-width) solid var(--vertical-line-color-4); } .sy__outline>.fn__flex-1>ul>ul>ul>ul>ul li, .sy__outline>.fn__flex-1>ul>ul>ul>ul>ul ul { border-left: var(--vertical-line-bracket-width) solid var(--vertical-line-color-5); } .sy__outline>.fn__flex-1>ul>ul>ul>ul>ul>ul li, .sy__outline>.fn__flex-1>ul>ul>ul>ul>ul>ul ul { border-left: var(--vertical-line-bracket-width) solid var(--vertical-line-color-6); }
-
[js] 快捷键实现在文档树上遍历
2025-04-18 09:17由于 siyuan 屏蔽了
alt+shift+左右键
的快捷键, 现在改为alt+ctrl+上下左右键
(() => { function set_file_open(now_ele, next_ele) { if (!next_ele) return if (next_ele.getAttribute('data-type') == 'navigation-root') { // 笔记本 now_ele.classList.remove("b3-list-item--focus"); next_ele.classList.add("b3-list-item--focus"); } else { // 普通文档 next_ele.click() } // console.log(next_ele) } function handle_file_navigation(now_ele, type) { if (!now_ele) return if (type == 'ArrowUp' || type == 'ArrowDown') { // 上 let ele_list = Array.from(document.querySelectorAll('div.sy__file li')) let idx = ele_list.indexOf(now_ele) if (idx == -1) return if (type == 'ArrowUp' && idx != 0) idx-- else if (type == 'ArrowDown' && idx != ele_list.length - 1) idx++ else return let next_ele = ele_list[idx] set_file_open(now_ele, next_ele) } else if (type == 'ArrowLeft') { let next_ele = now_ele.querySelector('.b3-list-item__arrow--open') if (next_ele) { // 有下层展开按钮: 折叠 next_ele.parentElement.click() } else { // 其他情况, 跳转到上层 next_ele = now_ele.parentElement.previousElementSibling if (next_ele?.tagName.toLowerCase() == 'li') { set_file_open(now_ele, next_ele) } } } else if (type == 'ArrowRight') { let next_ele = now_ele.querySelector('span.b3-list-item__toggle:not(.fn__hidden)') if (next_ele) { // 有下层展开按钮: 展开 if (next_ele.querySelector('.b3-list-item__arrow--open')) { now_ele.nextElementSibling.firstChild.click() } else { next_ele.click() } } } } setTimeout(() => document.querySelector('[data-type="focus"]')?.click(), 1000); // 事件监听 document.addEventListener('keydown', async (event) => { // 上/下, 遍历列表 // 左: 没有下层: 跳转到上层 // 有下层&下层展开: 折叠 // 有下层&下层折叠: 跳转到上层 // 右: 没有下层: 不处理 // 有下层&下层展开: 跳转到第一个子节点 // 有下层&下层折叠: 展开 if (event.altKey && event.ctrlKey && (event.key == 'ArrowUp' || event.key == 'ArrowDown' || event.key == 'ArrowLeft' || event.key == 'ArrowRight')) { let now_ele = document.querySelector('div.sy__file li.b3-list-item--focus') // console.log(now_ele) // console.log(event.key) handle_file_navigation(now_ele, event.key); } }); })()
-
建议思源笔记的搜索功能参照 obsidian
2025-03-29 19:44按文档分组, J 佬已经提到了, 如果要显示的很多, 可以通过 css 设置搜索结果, 让他自动换行
#searchList [data-type="search-item"]>span.b3-list-item__text { -webkit-line-clamp: unset; }
效果如下
-
新手指南 - 忽略搜索 - 难以理解
2025-03-27 21:45path 是 块 相对于 笔记本 的路径(不包含笔记本 id)
box 是 笔记本
id 是 块 id
ps:我当时只看了文档的属性是上面说的那样,内容块可能有变化
-
使用 sql 搜索时怎么过滤指定路径?
2025-03-21 15:14我是直接在控制台上找的代码, 过程好死亡
备注: blur 的时候, local-searchdata 存的是 k, 不是 idPath, idPath 应该在其他地方存的, 懒得找了
我还发现, 从搜索框失去焦点的时候, 会保存
local-searchkeys
, 也就是历史记录 -
使用 sql 搜索时怎么过滤指定路径?
2025-03-20 12:24已解决
-
全局搜索, 默认搜索路径可以通过这个获取:
window.siyuan.storage['local-searchdata'].idPath
-
搜索过程中, 修改了指定路径, 会触发思源的
input-search
事件事件回调参数(cfg)里面有路径:
cfg.detail.config.idPath
-
-
使用 sql 搜索时怎么过滤指定路径?
2025-03-19 15:29补充说明一下我为什么需要这个效果
我安装了 "简易搜索" 这个插件, 这个插件可以 通过输入特殊字符的方式, 达到过滤的效果
比如我想搜 名字包含 "12" 的文档
只需要输入
-d 12
就行, 不需要去选择过滤的块像这样
这个插件的原理就是, 先将输入的内容转成 sql 语句, 再使用原有的搜索
现在, 我有个体验不太好: 如果 搜出来的文档名有很多, 就会对我造成困扰, 所以需要用到 指定路径 这个功能
但是 指定路径 对于 sql 语句 是不生效的
所以我想通过修改插件的代码, 将 指定的路径 拼接到 插件转换后的 sql 语句里面
以此达到 输入
-d 12
, 指定了笔记 1 之后, 只保留笔记 1 的搜索结果且 支持 指定路径 动态变化的场景