一个思源笔记插件包,集成了 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。