花3个月时间,写了一款协同文档编辑器

之前和大家分享了我实现的 pxcharts 多维表格的产品功能和技术方案:

失业半年,写了一款多维表格编辑器pxcharts

pxcharts-pro, 支持百万数据渲染的多维表格编辑器

花了3个月时间,又写了一款协同文档编辑器------px-doc。接下来就和大家分享一下这款编辑器。

px-doc协同文档介绍

px-doc 是一款开箱即用的协同文档编辑器,支持图文和复杂表格编辑。

技术上我采用组件化的设计模式,Vue3 作为前端UI层,可以轻松集成到各种复杂系统。在协同实现上,目前市面上主要有两种常用算法:OT算法和CRDT算法。我在实现协同上采用了CRDT算法。

演示地址:flowmix.turntip.cn/px-editor

CRDT协同算法介绍

上面是我总结的CRDT的算法原理图,接下来和大家分享一下CRDT算法的优势。

CRDT(无冲突复制数据类型)作为支撑实时协同编辑的核心算法,其优势恰好能解释 px-doc 等工具实现 "多人零冲突协作" 的底层逻辑,主要体现在以下几点:

  1. 真正的去中心化:无需依赖中心服务器实时协调,各终端可独立编辑,后续通过数据合并达成一致。这让 px-doc 即便在网络波动时,用户仍能顺畅操作,避免因服务器延迟导致的编辑卡顿。
  2. 冲突自动消解:面对多人同时修改同一内容的场景,CRDT 能通过预设规则(如时间戳、节点 ID 优先级)自动合并操作,既不丢失任何修改,也无需用户手动解决冲突。比如两人同时编辑同一段落,算法会智能拼接内容,而非粗暴覆盖。
  3. 历史记录完整可追溯:每一次修改都会被编码为不可变操作日志,支持任意版本回溯。这让 px-doc 的 "自动保存" 和 "版本管理" 功能更可靠,用户能精准找回任一时刻的文档状态。
  4. 低带宽适配性:仅需同步操作指令而非完整文档,大幅减少数据传输量。即便在弱网环境下,也能保证协作流畅性,尤其适合远程团队或跨地域协作场景。

下面和大家分享一下 px-doc 编辑器的功能。

px-doc协同文档功能介绍

pc-doc协同文档的功能列表如下:

  • 支持文档撤销重做
  • 图文编辑
  • 支持项目列表
  • 支持复杂表格
  • 支持字体和字体样式设置
  • 支持有序和无序列表
  • 支持代码块
  • 支持引用
  • 支持分割线
  • 支持多人协同编辑
  • 支持导出
  • 支持文档分享
  • 支持一键生成文档目录大纲

后续还会支持迭代,如果大家感兴趣可以参考体验一下。

演示地址:flowmix.turntip.cn/px-editor

如果大家有更好的建议,欢迎留言区交流反馈~

相关推荐
Jolyne_22 分钟前
树节点key不唯一的勾选、展开状态的处理思路
前端·算法·react.js
饺子不放糖23 分钟前
workspace:你真的会用吗?
前端
饺子不放糖26 分钟前
dependencies vs devDependencies:别再傻傻分不清,你的 package.json 可能早就"胖"了!
前端
秋难降29 分钟前
正则表达式:为什么它成了程序员的 “分水岭”?
python·算法·正则表达式
Kevin@wust32 分钟前
axios的封装
前端·vue
teeeeeeemo34 分钟前
Ajax、Axios、Fetch核心区别
开发语言·前端·javascript·笔记·ajax
柏成40 分钟前
基于 pnpm + monorepo 的 Qiankun微前端解决方案(内置模块联邦)
前端·javascript·面试
唐诗1 小时前
VMware Mac m系列安装 Windws 11,保姆级教程
前端·后端·github
ZXT1 小时前
Chrome Devtool
前端
wycode1 小时前
web缓存问题的解决方案
前端