花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

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

相关推荐
小徐_233317 分钟前
wot-ui-cli 1.1.0 发布:支持 OpenCode、Antigravity,wot-ui 图标迁移不再靠猜
前端
__zRainy__1 小时前
Node.js Web 框架选型指南:从 Express 到 Hono 的全景对比
前端·node.js·express·koa·nestjs·egg·fastify
西瓜有点饿1 小时前
PostCSS 和 UnoCSS 的作用和区别
前端·postcss
mCell1 小时前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
伟大的兔神2 小时前
我做了一个本地优先的 AI 图片工作台:Loomora v1.0.0 正式发布
前端·javascript·vue.js
90后的晨仔3 小时前
uni-app项目 Vue3 状态管理 Pinia 完全指南:从概念到实战的深度解析
前端
wuyk5553 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
90后的晨仔3 小时前
uni-app 在 iOS 平台跳转页面时移除底部安全区域的完整技术指南
前端
峥无3 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl