BlockSuite协作编辑器

联合创作 · 2023-09-23 04:59

BlockSuite 是一个多人协作编辑器,支持多用户同时编辑一份文件,并且可以即时看到对方的编辑。BlockSuite 基于 local-first 理念,底层使用了 CRDT 库 yjs,还支持嵌入到任意不同框架 (React 、Vue 、Angular)。

BlockSuite 的工作方式不同于传统的富文本编辑器:

  • 在数据模型上,BlockSuite 没有实现事件溯源模式 (event sourcing),而是提供了一个直接基于 Yjs 的 block 树(底层采用 CRDT),支持开箱即用。它的数据持久层也被设计成本地优先 (local-first)。
  • 对于富文本编辑,BlockSuite block 树中的多个不同节点可以连接到不同的富文本编辑组件,从而将富文本内容建模为多个 UI 组件而不是单个 UI 容器,从而消除了危险的单体应用contenteditale
  • 对于渲染层,BlockSuite 并不假设内容只能通过 DOM 来渲染。它不仅实现了基于 Web Components 的基本文档编辑 UI ,还为部分白板内容开发了基于 Canvas 的混合渲染器。两个渲染器可以共存于同一个页面上,并从同一个商店更新。
浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报