思源笔记个人使用插件合集(开源)

一个思源笔记插件包,集成了 40 多个实用功能,装一个顶几十个。

功能一览

功能分四类,你可以按需启用,不用全开。

侧边栏面板

这些面板固定在思源右侧或左侧的侧边栏,随时点开用:

超级面板 --- 插件的控制中心。装好之后,这里显示版本号、运行状态,以及所有功能模块的快捷入口。不需要记哪个功能在哪,点这个面板就能找到。

图片压缩 --- 写在文档里的大图,直接选中丢进去,批量压缩一遍,不用先拿外部工具处理再导入。压缩质量可以调,压到多大也自己定。

单词查询 --- 写笔记时遇到不认识的英文词,选中它,侧边栏直接出释义和音标。不用切到浏览器打开翻译网站再切回来。

单位转换 --- 长度、重量、温度、货币、数据单位,输入数值自动换算。写技术文档或做方案的时候挺顺手,比如英尺转米、磅转公斤,几秒钟出结果。

本地磁盘浏览 --- 在思源里直接看本地文件和文件夹,不用另外开文件管理器。找文件、确认路径、看文件大小,都比来回切窗口方便。

数据统计 --- 文档总数、字数分布、最常编辑的笔记本、每日写作量,这些数据用 Chart.js 生成的图表展示。偶尔看看自己写了多少,也算一种写作动力。

状态栏 --- 思源底部多了一栏,实时显示 CPU 占用、内存占用和当前文档的统计信息。如果后台有任务在执行(比如打包、备份),这里也会显示进度条和状态。

Base64 图片转换 --- 把一张图片转成 Base64 编码字符串,或者把一个 Base64 字符串还原成图片。写 HTML 嵌入、数据 URI 场景下常用。

文档分析 --- 选中一篇文档,分析它的层级结构------多少级标题、各级标题各占多少比例、正文和代码各多少。写长篇文档时用来检查结构是否合理。

RSS 订阅 --- 把你想追的博客、新闻网站的 RSS 或 Atom 源添加进来,直接在思源里阅读更新文章。不用打开单独的 RSS 阅读器。

资源管理 --- 查看当前文档引用了哪些资源文件(图片、附件等),可以重命名、插入到其他文档、或者清理不再需要的文件。资源占用情况一目了然。

API 调试器 --- 给插件开发者准备的工具。思源笔记有一整套 API,你可以在这个面板里选一个接口,填参数,看看返回什么结果。写插件的时候调试接口不用反复重启思源。

快捷键面板 --- 列出当前所有可用的快捷键,支持按名称搜索。记不住快捷键的时候打开看一眼就行。

数据快照 --- 对思源的当前数据拍个快照保存下来。之后可以对比两个快照之间的差异、查看修改了哪些内容、需要的话上传到其他位置做归档。

弹窗工具

弹窗功能通过快捷键或右键菜单调出来,用完后关掉,不占界面空间。

数据备份 --- 支持手动和自动两种模式。手动模式指定路径直接生成备份文件。自动模式按设定的间隔在后台运行。备份完后可以选择上传到云端,或者从云端恢复。

AI 内容生成 --- 右侧浮出弹窗,输入一段提示词(比如"写一段 Vue 3 组件的使用说明"),AI 生成 Markdown 内容,审阅后直接插入到当前文档光标位置。支持多种 AI 接口配置。

​​视频管理器 ​(Ctrl+Alt+V)--- 文档里的视频资源统一管理,支持播放预览。不用在文档和播放器之间来回切。

​​Everything 搜索 ​(Ctrl+Alt+E)--- 如果你电脑上装了 Everything(本地文件搜索引擎),插件可以直接调用它的搜索结果。搜文件名秒出结果,比系统资源管理器快得多。

文本对比 --- 两段文本分别贴到左右两个编辑区,选择对比模式(字符级差异、词语级差异、行级差异、补丁模式),差异部分高亮显示。改稿子或者对比代码版本的时候用得着。

​​排版助手 ​(Ctrl+Alt+G)--- Markdown 格式的文章转成微信公众号能用的富文本格式。写技术博客的人应该知道,从 Markdown 搬到公众号编辑器有多痛苦,这个功能直接转换,省掉重新排版的时间。

​​密码箱 ​(Ctrl+Alt+W)--- 在思源里记录各种账号密码。数据用 AES 加密后存在本地,不依赖任何第三方服务。加一条、编辑、搜索都有,跟普通密码管理器一样用。

书签标记 --- 假如你在文档里加了书签(比如"待修改"、"已审核"、"重要"),这个功能会读取所有书签内容,然后在文件树上给对应的文档标记不同的颜色。哪些文档标注了什么状态,扫一眼文件树就知道。

图片生成 --- 给文章配封面图用的。输入标题和副标题,选择模板风格,生成一张适合做封面或社交分享用的图片。也可以把代码片段渲染成漂亮的代码图片。

HTML 展示 --- 选中一段文本或者一个块,右键选择「展示 HTML」,弹窗里显示它渲染后的 HTML 效果。写 Markdown 时不确定某些语法渲染成什么样,预览一下就知道了。

Skills 查看器 --- 如果你在用 Cursor、Claude Code 这类 AI 编程工具,每个项目都有一个 .claude​ 或 .cursorrules 之类的 Skills 配置文件。这个功能读取并展示这些配置,方便确认当前项目用了哪些规则。

单词阅读 --- 跟背单词 App 差不多,闪卡式设计。正面显示英文,点击翻转看释义。支持分多个分类(比如"六级词汇"、"技术术语"),记录每张卡片的背诵次数和进度。

选中文字后的操作

在编辑器里选中一段文字,会自动弹出一个浮动工具栏,上面有几个快捷操作图标:

二维码生成 --- 选中的内容是链接或者一段文本,点一下直接转成二维码图片。生成的二维码可以下载保存。

谐音翻译 --- 选中一个英文单词,给出它的中文释义和发音谐音(比如"ambulance → 俺不能死"这种记法)。背单词的时候顺带用一下,比死记硬背好。

英译中替换 --- 选中一句英文,点一下翻译成中文,然后直接替换掉选中的原文。写笔记时遇到英文段落想转成中文,不用再去翻译网站。

热力图标记 --- 自动分析选中文本的词汇频率,给高频词标上暖色(偏红),低频词标上冷色(偏蓝)。一眼扫过去就知道这段文字主要在讲什么。

全局功能增强

这些功能改变了编辑器的行为或者外观,开启之后一直生效:

​​目录索引 ​(Ctrl+Alt+I/O/R)--- 在文档里插入子文档索引列表(列出当前笔记本下的所有子文档)、引用列表(列出引用当前文档的页面)、或者大纲(自动生成当前文档的层级目录)。写系列文章或者知识库的时候,用来做导航页很方便。

文档导航 --- 编辑器顶部会显示当前文档属于哪个父文档、有哪些同级文档和子文档,每一项都是可点击的链接。在文档树很深的时候,不用一步步折叠展开,直接点链接就能跳。

页面锁定 --- 给文档设一个密码,锁住之后编辑器变成只读模式,不能修改内容。主要防止手滑------长时间浏览时不小心敲了键盘改了内容,或者笔记给别人看时不让改。

内容加密 --- 选中一个文本块,右键加密,输入一个口令,内容就变成了密文。想看的时候再右键解密,输入同一个口令还原。加密算法是 AES-256-GCM。适合在笔记里记录敏感信息。

主题色 --- 四套配色预设:暖橙色系(偏日落的色调)、GitHub 蓝(代码仓库的风格)、樱花粉(淡粉色)、Codex 深色(深色背景)。切换后立即生效,不改动思源本身的主题设置。

悬浮框 --- 页面右侧一个可展开的小面板,点击展开,收纳了常用的快捷操作和状态信息。适合放那些不需要固定占用侧边栏的功能。

紧凑模式 --- 触发后 UI 元素间距缩小、边距收窄,屏幕利用率更高。笔记本屏幕或者窗口被分割时打开这个模式比较实用。

网站导航 --- 在思源里管理一个常用网站列表,每条记录包括网站名称、URL、分类标签。点一下直接打开网页。适合收集工作中常用的内部系统或者参考站点。

脚本启动器 --- 配置一批可执行脚本(比如备份脚本、部署脚本),在思源里点一下就能运行。不需要开终端输命令。

Git 推送 --- 配置好 GitHub 和 Gitee 两个远程仓库地址,点一下按钮,插件自动执行 add、commit、push。写文档想同步到代码仓库,不用再切到命令行敲 git 命令。

关于怎么开发的

如果你只是想用,看到这里就够了。下面的内容写给想改代码或者加功能的人。

技术栈

Vue 3 + TypeScript + Vite 6 + Sass。用了 Chart.js 做图表、highlight.js 做代码高亮、Iconify 做图标、AES-GCM 做加密、JSZip 做压缩打包。依赖管理用的 pnpm。

项目结构

bash 复制代码
src/
├── index.ts              # 插件入口,读配置 → 注册功能
├── main.ts               # 初始化 Vue 应用
├── App.vue               # 根组件,全局弹窗容器
├── api.ts                # 思源 API 的封装调用
├── components/           # 共用 UI 组件(按钮、输入框、开关等)
├── utils/                # 通用工具(AI 调用、存储、加密、剪贴板等)
│
├── features/             # 每个功能一个子目录
│   ├── config.ts         # 功能配置表
│   └── statusBar/        # 状态栏
│   └── passwordVault/    # 密码箱
│   └── ...
│
├── i18n/                 # 中英文翻译文件
│   ├── zh_CN/ + en_US/   # 按功能拆分的分片文件
│   ├── zh_CN.json        # 构建时自动合并
│   └── en_US.json
│
├── config/
│   ├── settings.ts       # 所有功能的开关配置
│   └── icons.ts          # 图标映射
└── types/                # 类型定义

几个设计上的做法

​​功能模块之间不互相引用。A 功能想调用 B 功能,通过事件广播出去,由 App.vue 中转。这样加新功能不会牵连到其他功能。

​​统一工具入口 ​。所有通用操作都走固定函数------AI 调用走 callAI()​,存储走 PluginStorage​,剪贴板走 copyToClipboard()。不让人各写各的。

​​8 步注册制。加一个新功能,需要在 8 个地方登记,少一个就编译报错。听起来繁琐,但功能多了之后,这种约束反而省心------不会出现"功能装了但忘记开开关"之类的问题。

​​翻译文件按功能拆开。中文和英文各有一组分片文件,构建时自动合并。加新功能就新建对应的翻译文件,跑一下校验命令确保两边没漏。

常用命令

bash 复制代码
pnpm dev            # 开发模式,自动热重载
pnpm build          # 构建 + 打包
pnpm lint           # 检查代码格式
pnpm lint:fix       # 自动修格式
pnpm i18n:verify    # 校验中英文翻译是否对齐

想加新功能?

先看看已有功能的结构,复制一个类似的目录,然后在前面说的 8 个地方注册。每个 features/*/​ 目录下需要有 index.ts​(注册函数)、index.vue​(界面)、types/​(类型定义)。详细的步骤写在 CLAUDE.md 里。

链接

平台 地址
GitHub github.com/kaiouyang-s...
思源笔记 github.com/siyuan-note...

有问题去任意仓库提 Issue。觉得有用的话给个 Star。