实时协作富文本编辑
Real-time collaborative rich text editing
我想为我的Web应用程序提供一个实时协作富文本编辑器。到目前为止,我已经做了很多研究,我真的有点沮丧,因为那里没有合适的东西。问题是,每个解决方案都与编辑器紧密耦合(例如,Firepad使用CodeMirror/Etherpad使用Etherpad)。我只发现另外两个有趣的解决方案:
-
ShareJs->仅适用于纯文本
-
Webstrate->这对我来说是最有前途的。它可以处理DOM同步,因此它可以处理所有可编辑的内容-太棒了!
但Webstrate的问题是,它是一个alpha版本。所以对我来说,这太麻烦了——没有成功。试着让它工作大约2天。文本同步很容易。但它不适用于iframes或其他东西。
我对合作RTE的要求很高——它应该支持:
-
图像
-
Iframes
-
视频
-
文本(当然)
当我正在寻找大约3-4天的解决方案时——也许你们中的某个人有一个提示?会非常温柔;)
您可以尝试http://swellrt.org,是开发实时协作应用程序的完整框架,包括富文本支持和Web编辑器。
它提供了一个JS API,类似于GDReal-time API,加上丰富的文本编辑。
编辑器可以扩展以支持任何附件。
它是Apache Wave的一个分支,对原始代码进行了概括。
我发现的最接近的东西是http://quilljs.com/-它有一个API,用于获取和更新文本增量,还用于获取和设置多个标记的光标。它不会为你管理实时编辑,但它给了你足够的工作空间(比我发现的任何其他项目都多)。然而,它在格式方面不如其他编辑器全面(例如,它不支持表和嵌套列表)。它具有一定的可扩展性,因此您可以添加对其他HTML元素的支持。
强大的协作式富文本编辑器仍有一定的优势。大多数基于网络的文本编辑器分为两类。
- 那些与实时协作兼容,但功能相当有限(例如,没有表,没有嵌套元素等)
- 这些是非常强大的基于web的富文本编辑器,但缺乏与实时技术集成的API
然后是协作引擎,如ShareDB、Google Drive Realtime API、SwellRT和Convergence(完全披露我是Convergence Labs的创始人)。这些类型的系统对数据模型以及如何协调协作都有自己的看法。您最喜欢的富文本编辑器的内部工作方式可能与协作引擎的API不兼容。
简单地同步DOM的技术是有趣的,因为它们通常在编辑器之间是可移植的并且较少依赖于编辑器API,但它们往往缺乏良好协作所需的许多实时编辑功能(共享光标、共享选择等)。这可能很难在引擎本身之外的DOM同步方法之上实现。不幸的是,如果没有这些功能,协作编辑体验就没有那么好了。
有几个项目正试图纠正这种情况。CKEditor的员工正在开发CKEditor 5,它考虑到了合作。此外,在Convergence,我们正试图与许多流行编辑的作者合作,以实现实时合作。
事实是,它仍然是一个相当新的空间,而且发展迅速。没有经过测试的、可扩展的、扣篮式的解决方案可以提供开箱即用的、功能全面、协作、免费和开源的编辑器。2018年的情况似乎有所改善。希望在接下来的12-24个月里,这将成为一个容易得多的问题。
- 文本编辑后,append函数不适用于文本区域
- Sitecore富文本编辑器-添加按钮
- 实时协作富文本编辑
- 正在寻找具有多种功能的文本编辑器
- 简单的Javascript文本编辑器或一组函数
- 具有.txt输出的富文本编辑器
- 文本编辑工具栏解决方案 (js),具有低级自定义
- 无法在实时服务器中发布富文本编辑器内容
- 是否可以在没有CMS的情况下使用富文本编辑器
- 用PHP文本编辑器压缩和合并JS文件
- HTML5中具有过程格式的单行文本编辑器
- TinyMCE文本编辑器最大字符限制
- Bootstrap 3的就地文本编辑组件
- 如何使用剑道富文本编辑器自动大写第一个字母
- 替换富文本编辑器中的 HTML 标记
- JQuery/Javascript源;图像模板”;文本编辑
- JQuery文本编辑器-在工具栏中添加其他下拉列表
- Redactor文本编辑器– 在代码视图中重新缩进缩小的HTML
- YUI富文本编辑器和Chrome中的同源策略
- 如何使用 Google 云端硬盘实时 API 实现协作式富文本编辑