1

我想为我的 webapp 提供一个实时协作的富文本编辑器。到目前为止,我已经做了很多研究,但我真的有点沮丧,因为那里没有合适的东西。问题是,每个解决方案都与编辑器紧密耦合(例如 Firepad 使用 CodeMirror/Etherpad 使用 Etherpad)。我发现只有另外两个有趣的解决方案:

  • ShareJs -> 仅适用于纯文本

  • Webstrate -> 这对我来说是最有希望的。它可以处理 DOM 同步,因此它可以处理每个 contenteditable - 太棒了!

但 Webstrate 的问题在于,它处于 alpha 版本。所以对我来说,这太麻烦了——没有成功。试图让它工作大约 2 天。文本同步很容易。但它不适用于 iframe 或其他东西。

对于协作式 RTE,我的要求相当高 - 它应该支持:

  • 图片

  • 框架

  • 视频

  • 文字(当然)

虽然我现在正在寻找大约 3-4 天的解决方案 - 也许你们中的某个人有提示?会很温柔;)

4

3 回答 3

3

你可以试试http://swellrt.org,它是一个完整的框架,用于开发实时协作应用程序,包括富文本支持和Web编辑器。

它提供了一个 JS API,类似于 GD Real-time API,以及富文本编辑。

可以扩展编辑器以支持任何附件。

它是泛化原始代码的Apache Wave的一个分支。

于 2015-08-13T14:27:33.563 回答
3

我找到的最接近的东西是http://quilljs.com/ - 它有一个用于获取和更新文本增量以及用于获取和设置多个标记游标的 API。它不为您管理实时编辑,但它为您提供了足够的工作(比我发现的任何其他项目都多)。但是它在格式方面不如其他编辑器全面(例如,它不支持表格和嵌套列表)。它具有一定的可扩展性,因此您可以添加对其他 HTML 元素的支持。

于 2015-08-08T10:06:21.777 回答
1

强大的协作富文本编辑器仍然有些前沿。大多数基于 Web 的文本编辑器分为两类。

  1. 与实时协作兼容但功能相当有限的那些(例如,没有表格、没有嵌套元素等)。
  2. 那些非常强大的基于 Web 的富文本编辑器,但缺乏与实时技术集成的 API。

然后是 ShareDB、Google Drive Realtime API、SwellRT 和Convergence等协作引擎(完全披露我是Convergence Labs的创始人)。这些类型的系统对数据模型以及如何协调协作都有自己的看法。您最喜欢的富文本编辑器内部工作方式可能与协作引擎的 API 不兼容。

简单同步 DOM 的技术很有趣,因为它们通常可以跨编辑器移植,并且对编辑器 API 的依赖较少,但它们往往缺乏良好协作所需的大量实时编辑功能(共享光标、共享选择等)。这可能很难在引擎本身外部的 DOM 同步方法之上实现。不幸的是,如果没有这些功能,协作编辑体验就不是那么好。

有几个项目试图纠正这种情况。CKEditor 的人们正在开发考虑协作的 CKEditor 5。此外,在 Convergence,我们正尝试与许多受欢迎的编辑器的作者合作,以实现实时协作。

现实情况是,它仍然是一个相当新的领域,并且发展迅速。没有经过测试的、可扩展的、灌篮式解决方案提供开箱即用的功能齐全、协作、免费和开源的编辑器。情况似乎在 2018 年有所改善。希望在接下来的 12-24 个月内,这将成为一个更容易解决的问题。

于 2018-01-04T05:58:04.373 回答