BlockSuite

协作编辑器
授权协议 MPL
开发语言 TypeScript
所属分类 Web应用开发、 可视化HTML编辑器
软件类型 开源软件
地区 国产
投 递 者 金兴朝
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 的混合渲染器。两个渲染器可以共存于同一个页面上,并从同一个商店更新。
 相关资料
  • 问题内容: 我正在编写一个应用程序,希望在其中具有文档的近实时协作编辑功能(非常类似于Google Documents样式编辑)。 我知道如何跟踪光标位置,这很简单。只需使用可存储在数据库中的当前用户ID,文件名,行号和行号每半秒或第二秒轮询服务器,该轮询请求的返回值就是其他用户游标的位置。 我不知道该怎么做,就是以一种不会使您的光标移开并强制完全重新加载的方式来更新文档,因为这样做对我来说太慢了

  • 如你所见,幕布的界面简洁大方,只要记住回车、 Tab 两个键和一个菜单位置即可。 基本操作 幕布的基本操作就像文字编辑器一样,上手简单。大多数时候你都只需要使用下面三个功能,专注于生产内容。 使用回车「Enter」创建新的主题; 使用「Tab」缩进一级; 使用「Shift+Tab」提升一级; 功能菜单 鼠标移动到主题前边的小圆点时,会出现功能菜单,完成更多的操作,也可以使用快捷键来完成这些操作。

  • 6.2 操作编辑对象 与 Vim 可视编辑的有关的几个概念对象是缓冲(buffer)、窗口(window)与标签页( tabpage),还有目前较少用到的在命令行参数提供的文件列表(argument list)。VimL 也提供了许多函数以供脚本来控制这些编辑对象。 编辑对象背景知识 很早期的 vi 一次只能编辑一个文件。不过从命令行启动时可以提供多个文件名参数, 首先编辑第一个文件,编辑完后可以

  • 本文向大家介绍C# RichTextBox制作文本编辑器,包括了C# RichTextBox制作文本编辑器的使用技巧和注意事项,需要的朋友参考一下 本文利用一个简单的小例子【文本编辑器】,讲解RichTextBox的用法。 Windows窗体中的RichTextBox控件用于显示,输入和操作格式化的文本,RichTextBox除了拥有TextBox控件的所有功能外,还可以显示字体,颜色,链接,从文

  • 我使用的数据表版本如下: 以及以下版本的编辑器、按钮和选择: 这是我的js文件,它调用我的API并读取数据和编辑器: var编辑器;//在示例中使用全局提交和返回数据渲染 } ); 这是我的HTML: 这是我的JSON文件(已缩短)