需求
希望把 Flowix 的功能做成可插件化,支持第三方按插件的形式扩展(自定义编辑器扩展、命令、面板、AI 工具等),而不是把所有能力都编进主程序。
现状(核实结果)
目前代码里的 "plugin" 全部是编译期集成,没有面向第三方的插件系统:
- 前端所谓 plugin 都是 Tiptap / ProseMirror 编辑器扩展,直接在
app/flowix-web/features/editor/markdown-editor.tsx 里 import + 静态注册(如 extensions/markdown-link.ts、extensions/tag.ts、table/table-plugin.ts 等)。
- 后端是 Tauri 内建插件(
tauri-plugin-*),同样是编译期依赖。
- 没有:插件清单(manifest)、运行时加载 / 卸载、稳定的插件 API / SDK、插件沙箱与权限模型、插件市场或本地安装目录。
即当前不具备类似 Obsidian / VS Code 那种第三方插件开发能力。
期望方向(供讨论)
一个完整的插件化会涉及不少设计决策,建议分阶段:
- 扩展点定义:先明确对外开放哪些扩展点(编辑器节点/标记、斜杠命令、侧栏面板、状态栏项、AI 工具、命令面板动作等)。
- 插件清单 + 加载机制:定义 manifest 格式与插件目录,支持运行时发现/启用/禁用。
- 稳定 API/SDK:给插件暴露一套受控的前端(编辑器、store、命令)与后端(IPC 命令、文件访问)接口。
- 安全模型:插件权限声明与沙箱(尤其涉及文件系统 / 网络 / AI provider 时),复用现有
path_scope / 白名单机制。
- 分发:本地安装 → 后续可考虑插件市场。
这是一个较大的架构性工作,先开 issue 记录需求、收集设计意见。
收益
- 社区可自行扩展编辑器与工作流,降低主仓维护负担;
- 现有内建扩展(Tiptap 扩展、AI 工具)可逐步迁移到统一插件模型,验证 API 完备性。
需求
希望把 Flowix 的功能做成可插件化,支持第三方按插件的形式扩展(自定义编辑器扩展、命令、面板、AI 工具等),而不是把所有能力都编进主程序。
现状(核实结果)
目前代码里的 "plugin" 全部是编译期集成,没有面向第三方的插件系统:
app/flowix-web/features/editor/markdown-editor.tsx里import+ 静态注册(如extensions/markdown-link.ts、extensions/tag.ts、table/table-plugin.ts等)。tauri-plugin-*),同样是编译期依赖。即当前不具备类似 Obsidian / VS Code 那种第三方插件开发能力。
期望方向(供讨论)
一个完整的插件化会涉及不少设计决策,建议分阶段:
path_scope/ 白名单机制。这是一个较大的架构性工作,先开 issue 记录需求、收集设计意见。
收益