Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
 
 

README.md

介绍

什么是etherpad

etherpad是一款开源的、可支持多人实时编辑的web编辑器:etherpad-lite

etherpad的整体交互模型

etherpad的交互模型

etherpad的客户端、服务器端模型、基于富文本的数据协议:

关于etherpad的解析器

etherpad的解析器

etherpad产生diff的2种方式

  • 如果是点击菜单栏上的功能按钮,那么etherpad根据(1)当前选区位置(2)当前选区内容(3)按钮指令(加粗、下划线、字号...)生成对应的diff
  • 如果是用户在编辑器内不断的输入文字,那么etherpad通过定时检测来获取内容的变化,生成对应的diff

etherpad-core产生的背景

  • etherpad内嵌了自己的一个编辑器ace editor,不支持接入第三方富文本编辑器
  • 但是etherpad具备了完整的实时协作机制,包括:客户端、服务器端的模型设计,多人冲突的设计,对富文本格式的解析,对输入法的支持等。这些功能自己实现起来很困难
  • 想基于第三方富文本编辑器实现多人实时协作的功能,业界并没有现成的方案
  • 如果能利用etherpad的实时协作机制,又能接入第三方编辑器,那就是一个完美的方案

etherpad-core做了什么?

  • etherpad产生diff的2种方式中的第1种方式,完全是etherpad自己的私有机制,没法接入第三方编辑器
  • 但是利用第2种方式,不管第三方编辑器如何改变编辑器内容,只要让etherpad定时去检测到变化,就能生成diff,后续流程完全和原生etherpad一致
  • 将etherpad对内置编辑器的绑定解耦,通过设计api暴露出来,可绑定到第三方编辑器上。这样第三方编辑器就具备了和原生etherpad相同的整套实时协作编辑的能力
  • 不断强化etherpad的解析器。

demo

todo

  • etherpad-core初始化的api设计
  • 强化etherpad的解析器:支持缩进(text-indent),分割线(hr),表格(table)...
  • 在线demo

About

从etherpad中分离出来的实时编辑模型核心,可接入第三方富文本编辑器

Topics

Resources

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.