繁体   English   中英

实时协作富文本编辑

[英]Real-time collaborative rich text editing

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

  • ShareJs -> 仅适用于纯文本

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

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

我对协作 RTE 的要求非常高 - 它应该支持:

  • 图片

  • 内嵌框架

  • 视频

  • 文字(当然)

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

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

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

它提供了一个 JS API,类似于 GD 实时 API,加上富文本编辑。

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

它是Apache Wave的一个分支,它概括了原始代码。

强大的协作富文本编辑器仍然有些前沿。 大多数基于 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 个月内,这将成为一个容易得多的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM