恐龙工具箱

这是一只恐龙,路过的人必须夸它可爱。

「恐龙工具箱」是思源笔记的一款插件。

侧边栏展示 highlight

image

直接直接编辑:

image

你的反链面板何必只有反链 | 养恐龙

反链面板支持展示自定义 SQL:

image

epub 书籍阅读 mm-o/siyuan-sireader · GitHub

主要是想验证下标注通过反链来做笔记。目前实现了一版,支持移动端。

可将文本标注后自动插入绑定的文档,并在当前窗口弹出悬浮窗方便做笔记。插入标注的格式也可以配置。算是一个 MVP 吧。

image

image

仪表盘

实现了一版仪表盘功能,主要为日记设置,兼容移动端。

仪表盘

image

image

配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[
{
//配置名
name: "所有文档!",
//主页总数 label
indexLabel: "文档数量",
//进入时是否加载列表
showEntries: true,
//进入时是否加载图片
showMedia: true,
//控制是否展示 主统计信息
showMainStatics: true,
//控制是否展示 那年、那月、那周今日
showOnThisDay: true,
//控制是否展示 热力图
showHeatmap: true,
//控制是否展示 自定义卡片
showcustomCards: [
{
id: "random",
type: "text",
label: `select blocks.* from blocks where type = 'p' order BY RANDOM() LIMIT 1`,
onClick: () => {
loadCards("random").then((res) => {
customCards = customCards.map((card) => {
const matchedRes = res.find((item) => item.id === card.id);
return matchedRes ? matchedRes : card;
});
window.diaryTools.updateCustomCards(customCards);
});
},
},
{
type: "text",
label: `select blocks.* from blocks where type = 'p' order BY RANDOM() LIMIT 1`,
onClick: (card) => {
if (window.diaryTools.isMobile) {
window.diaryTools.openMobileFileById(window.diaryTools.plugin.app, card.labelBlocks[0]?.id);
} else {
window.open(`siyuan://blocks/${card.labelBlocks[0]?.id}`);
}
},
},
{
type: "icon-stat",
label: "距离 2026 年还有",
number: () => {
const targetDate = new Date("2026-01-01").getTime();
const currentDate = new Date().getTime();
const timeDiff = targetDate - currentDate;
const daysDiff = Math.ceil(timeDiff / (1000 * 60 * 60 * 24));
return daysDiff;
},
text: "天",
},
],
//主SQL
mainSQL: `select blocks.* from blocks where type = 'd'`,
//可选:图片SQL。若为 null,则通过 mainSQL 关联查询
imgSQL: null,
},
{
name: "🎲 随机!",
indexLabel: "随机文档",
showEntries: true,
showMedia: false,
showMainStatics: true,
showOnThisDay: true,
showHeatmap: true,
mainSQL: `select blocks.* from blocks where type = 'd' ORDER BY RANDOM() LIMIT ${Math.floor(Math.random() * 51) + 50}`,
},
]

Flow 浏览

image

文档流、图片流

打开图片流

直接打开纯文档、纯图片界面

image

支持链接打开

格式:

  • 打开文档流【查询 SQL 返回一组 id 即可】:siyuan://plugins/siyuan-hqweay-go/flow?sql=select%20mainSQL.id%2C%20mainSQL.created%20from%20(select%20blocks.*%20from%20blocks%20where%20blocks.type%20%3D%20'd'%20and%20blocks.path%20LIKE%20'%2520250126213235-a3tnoqb%25')%20as%20mainSQL%20order%20by%20created%20desc

  • 打开图片流【查询 SQL 返回一组图片的 PATH 即可】:siyuan://plugins/siyuan-hqweay-go/flow-image?title=%E2%9E%BF%20Voicenotes&sql=select%20mainSQL.%20%2C%20assets.PATH%20as%20asset_path%20from%20(select%20blocks.%20from%20blocks%20where%20blocks.type%20%3D%20'p'%20and%20blocks.path%20LIKE%20'%2520250126213235-a3tnoqb%25')%20as%20mainSQL%20left%20join%20assets%20on%20mainSQL.id%3D%20assets.block_id%20where%20(assets.PATH%20LIKE%20'%25.png'%20OR%20assets.PATH%20LIKE%20'%25.jpg'%20OR%20assets.PATH%20LIKE%20'%25.jpeg'%20OR%20assets.PATH%20LIKE%20'%25.gif'%20OR%20assets.PATH%20LIKE%20'%25.bmp'%20OR%20assets.PATH%20LIKE%20'%25.webp')

  • 打开仪表盘:

    • 按配置的 name:siyuan://plugins/siyuan-hqweay-go/open?index=📝 碎碎念引用
    • 按下标:siyuan://plugins/siyuan-hqweay-go/open?index=0
  • 打开 Flow 浏览界面

导航栏助手;支持移动端、PC 端

7F3FB2D0-82D1-450D-A8EC-4B395F487F98_1_201_a

PC 端效果

image

  • 支持前进后退
  • 支持打开今日日记
  • 随机跳转
  • 配置跳转 (想结合「文档流」插件达到一键打开日记流的效果,但​~~目前思源移动端还不支持插件 url 跳转~~​ 。) 目前已经支持了,可以配置「恐龙工具箱-仪表盘」的「支持链接打开」使用~
  • 上下文档切换:🙏frostime/sy-f-misc
  • 可配置快捷添加到数据库:🙏wilsons

OCR 功能

我的使用场景主要是 PDF 阅读在做矩形标注时,粘贴 OCR 文本。【在「粘贴时对数据处理」里开启】

建议搭配 CSS 使用:

1
2
3
4
5
6
7
8
9
div:has(> [data-type="file-annotation-ref"]) {
background-color: #e6f3ed;
border-radius: 8px;
padding: 16px;
}
div[data-type="file-annotation-ref"]{
color: #028f26;
padding-left: 30px;
}

image

其它

会在右上栏增加个按钮,方便对文档内的图片一键 OCR。

为图片的 context 菜单增加快捷复制 OCR 内容、用 OCR 内容替换图片的菜单。

image

image

日记相关工具

快捷小窗写日记 :🙏suka233/siyuan-knote

  • 支持全局快捷键(默认 F10)弹出一个小窗打开今日日记

    • image

slash 新增「cdn/创建日记引用」提供日历选择器快捷创建指定日期的日记并插入块引:🙏frostime/siyuan-plugin-kits(好用!)

  • image
  • image
  • image

获取天气并插入属性

在「日记相关工具」里开启:

image

image

获取成功后会将天气信息写入属性:

image

搭配「标题下展示文档自定义属性的值」效果:

image

快捷添加属性

块菜单中增加快捷添加属性;属性可在插件设置里配置。

image

现在支持一键赋值多个属性,以@开头命名的配置会被注册进 slash 命令。

默认值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[
{
name: "恢复转换效果",
key: "f",
value: "",
enabled: true,
},
{
name: "转换为表格",
key: "f",
value: "bg",
enabled: true,
},
{
name: "转换为导图",
key: "f",
value: "dt",
enabled: true,
},
{
name: "转换为时间线",
key: "f",
value: "timeline",
enabled: true,
},
{
name: "转换为看板",
key: "f",
value: "kb",
enabled: true,
},
{
name: "转换为Tab",
key: "f",
value: "list2tab",
enabled: true,
}
];

效果:

image

默认提供了 5 个属性,支持列表转为其它视图:🙏Achuan-2/siyuan-themes-tsundoku

  • 默认

    • image
  • 表格

    • image
  • 导图

    • image
  • 时间线

    • image
  • 看板

    • image
  • Tab

    • image

可选(便利贴样式)🙏GitHub - chenshinshi/sy-blt

在代码片段合集里启用「便利贴」,会为思源注入便利贴样式的 CSS,为块添加自定义属性 custom-f 可启用,支持值:

image

1
2
3
4
5
6
7
8
9
10
11
"qsr": "格纹复古",
"qsy": "浅色黄",
"qsg": "浅色绿",
"qsb": "浅色蓝",
"ssr": "深色红",
"ssy": "深色橙",
"ssg": "深色绿",
"ssb": "深色蓝",
"jb": "渐变黄",
"ay": "棕顶栏",
"ayx": "金边",

image

image

可搭配「快捷添加属性」使用,配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
[
{ name: "格纹复古", value: "qsr", key: "f", enabled: true },
{ name: "浅色黄", value: "qsy", key: "f", enabled: true },
{ name: "浅色绿", value: "qsg", key: "f", enabled: true },
{ name: "浅色蓝", value: "qsb", key: "f", enabled: true },
{ name: "深色红", value: "ssr", key: "f", enabled: true },
{ name: "深色橙", value: "ssy", key: "f", enabled: true },
{ name: "深色绿", value: "ssg", key: "f", enabled: true },
{ name: "深色蓝", value: "ssb", key: "f", enabled: true },
{ name: "渐变黄", value: "jb", key: "f", enabled: true },
{ name: "棕顶栏", value: "ay", key: "f", enabled: true },
{ name: "金边", value: "ayx", key: "f", enabled: true }
]

VoiceNotes 笔记同步:🙏voicenotes-sync

  • Voicenotes: AI Notes and Meetings
  • 设置界面可进行全量同步,右上角添加一个录音图标,点击可同步最新的 20 条笔记。
  • 文档菜单、块菜单新增「同步至 VoiceNotes」,支持以文档/块为单位将文本内容分享到 Voicenotes,支持修改。从思源同步至 Voicenotes 的数据会被打上「siyuan」标签,在同步 Voicenotes 至思源时被排除。先不考虑数据更新回来的情况——以思源数据为准。

阅读帮助

toolbar 支持标注并复制块引

  • 标注并复制块引
  • 标注并复制 Text* 块引
  • 标注并复制 * 块引
  • image

新增在文档标题下展示自定义属性的值

  • image
  • image
  • image

标题转换

  • 文档菜单打开事件增加标题转换

    • image

随机题头图:🙏【教程】把随机题头图换成自己的图片,让思源笔记更加赏心悦目 - 链滴

  • 使用:

    • 1)配置;

      • 目前必应的 API 可正常使用

        • image
        • 可以配置一个随机返回图片的链接
        • 也可以配置本地图片的文件夹
    • 2)在文档点击「随机题头图」;

    • 3)右键点击「随机」

      • image

发送到

image

  • 块菜单事件提供将选中内容分享到配置链接的功能

    • 通过 Google 搜索

    • chatGPT 支持查询参数了,可以这样配置下:ChatGPT 总结====https://chat.openai.com/chat?q=请帮我总结:${content}

    • 自定义链接

      • 例子, 搭配快捷指令将块发送到提醒事项

        • image
        • image
  • 通过 Script 分享,目前只支持卡片分享

    • 支持在卡片页面展开/折叠列表
    • 支持模板
    • 分享时可编辑修改
    • 支持样式配置
    • image

中文排版优化

  • 右上角增加机器人图标/块菜单打开事件增加格式化文档的功能;注意有损坏数据风险。

    • 中文使用全角标点
    • 英文使用半角标点
    • 中英文混合排版……
    • 支持图片居中
    • 支持调整图片宽度
  • 配置格式化后是否自动执行思源提供的「排版优化」以插入空格

  • 配置格式化后是否自动执行思源提供的「网络资源文件转换本地」

为不同文档配置打开时是否同时打开/关闭边栏

使用场景示例:某文档包含长表格/数据库,需要打开时自动关闭侧边栏以展示更多区域。

  • 可为不同文档配置不同操作:打开边栏、关闭边栏
  • 可配置左边栏、右边栏
  • 可配置是否同时打开/关闭停靠栏

快捷添加书签

  • 块菜单打开事件增加快捷添加书签

提取元素至新文档

场景:主要用于阅读时先标注,再一次性提取为二次材料。

  • 文档菜单打开事件新增提取当前文档的标注至新文档。

    • 提取时是否包含标注的上下文
    • 新文档内的标注是否添加一个 * 引用指向原文块

随机/固定浏览【准备废弃,边栏扩充已经包含了】

  • 在界面右上角生成一个随机图标,点击可跳转指定 id 条目;由于跳转通过 SQL 配置,你也可以配置固定跳转到某个块或文档。

粘贴时对数据进行预处理

原理:切入粘贴事件,再粘贴前对粘贴板里的数据进行预处理。

  • 粘贴链接时自动获取标题并以 markdown 形式的链接粘贴

矩形标注粘贴时转为「图片 📌」

PDF 阅读「矩形标注」粘贴 · Issue #15928 · siyuan-note/siyuan · GitHub

思源笔记在矩形标注时粘贴为:

CleanShot 2025-09-07 at 01.03.10@2x

调整后以 RemNote 的形式粘贴:

CleanShot 2025-09-07 at 01.06.23@2x

行内元素转换

  • 块菜单/文档菜单打开事件增加行内元素转换的功能

    • 块超链接 👉 引用
    • 引用 👉 块超链接
    • 引用/块超链接 👉 文本
    • 引用/链接 👉 文本
    • 加粗 👉 文本
    • 标注 👉 文本
    • 标签 👉 文本
    • 斜体 👉 文本
    • 清理文档自身的引用
    • 清理 * 引用

配置某些引用下的子元素展示(id 截取生成的)创建时间

  • 配置 ID,该 ID 引用下的子节点将在右上角展示创建时间
  • 是否为该 ID 文档下的大纲元素启用

image

边栏扩充

  • 在任意边栏新增图标打开文档或块、链接、随机浏览的范围 SQL

Docky

迁移自 sy-f-misc/src/func/docky.ts,按个人习惯优化。主要差别是开启了面包屑(方便聚焦、退出聚焦),去掉了原插件的顶栏。

image

【实验】增加代码片段合集 Demo

插件会拉取代码片段合集配置的代码片段,可直接启用。详见该 issue。

image

其它

各项功能的详细说明也可见 src/lets-*/​ 下的 README.md

该插件主要自用,参考抄袭了许多已有开源项目,如果插件能提供些许帮助,皆归功于他们。你可以在 src/lets-*/​ 下的 plugin.tsREADME.md​,或者 详细说明 里看到对他们的致谢。

插件的各项功能被组织在 src/lets-* 下,各自独立。如果你对某个功能感兴趣,可以方便地复制到你的项目中。标注为【实验】的功能,极不稳定,配置方式可能随时变更。

该项目实现了一套子功能注册机制,将你的功能放在 src/lets-*​ 下,并实现 index.ts​ 和 plugin.ts,即可自动注册到插件中。如果你有做自己工具箱的需求,也可以参考此项目。

♥️

如果有帮到您,欢迎点个 Star ⭐️ 鼓励一下!🦖感谢~

如果还愿意为🦕买包辣条,您将为守护地球和平做出重要贡献~

QR Code