插件功能

524 字
3 分钟
插件功能
思源笔记Pixcall(推测为 Eagle 式)
插件语言JS/TS(一般用 Vite/Webpack 打包)HTML/JS
运行位置前端主窗口同一个 JS 上下文,无沙箱独立窗口/WebView,独立渲染进程
与 UI 宿主通信直接调 siyuan 模块的类/函数 + eventBus 事件 + 可直接碰 DOM/window.siyuan注入的全局 pixcall 对象,底层走 Electron IPC
与数据层通信HTTP REST API + WebSocket 到 Go 内核通过 IPC 到 Electron 主进程
隔离/安全几乎没有,插件权限 = 前端权限(桌面端含 Node)有进程隔离,能力由 API 白名单决定
扩展点风格注册式(addTopBar/addDock/addCommand…)+ 事件以”打开一个插件窗口/面板”为主,通过 API 读写素材

共同点:都是 Electron 时代典型做法——用 Web 技术写插件、宿主注入 API 对象、UI 和数据分层通信。区别主要在于思源把插件放进宿主同进程换取深度集成(能改编辑器、菜单、任何界面),而 Pixcall/Eagle 这类把插件放进独立窗口换取隔离和稳定。如果你要为它们写插件,思源直接看 siyuan-note/plugin-sample 和 petal 的 siyuan.d.ts 就能摸清全部通信接口;Pixcall 则以官方插件开发文档中 pixcall 对象的 API 列表为准。

存储源扩展编辑器扩展Eagle 式资源库插件
主要工作网络/磁盘 IO、鉴权、二进制流改编辑器行为、菜单、渲染、快捷键独立的工具界面,读写素材库
需不需要 UI基本不需要(只要一个配置表单)深度嵌入宿主 UI自带完整 UI
运行位置必须在 Go 侧(前端传二进制流不现实)必须在前端同一 JS 上下文(要碰编辑器实例/DOM)独立窗口/iframe 即可
出错后果数据丢失、凭据泄露 → 隔离和稳定性优先界面卡死 → 可接受,重启即可只影响自己窗口
性能要求高(大文件、并发)中低
谁来写通常是你或少数高级开发者社区社区

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

插件功能
https://shaio.top/posts/03mogallery/desktop/260904插件功能/
作者
沙海
发布于
2026-09-04
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
沙海
Hello, I'm Shai.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
84
分类
15
标签
48
总字数
67,035
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.12.2
文章许可
CC BY-NC-SA 4.0

文章目录