开源协作Web编辑器

在现代Web系统大流行时代,一款功能强大而切支持协作的Web的富文本编辑器是系统的最关键的组成部分。一款可真正在生产环境中使用的即插即用编辑器,可以能够解决我们实时协作问题:通过浏览器编辑结构化文档,并在屏幕上显示彼此的更改,从而使相隔数千里的用户能够进行协作编辑。本文我们就来介绍一些这样的Web编辑器。

开源协作Web编辑器

TinyMCE

TinyMCE是一款轻量级所见即所得开源Web编辑器,基于LGPL license发布可以更好的用于商业产品中。TinyMCE支持AJAX,具有配置简便,加载速度快的特点。

开源协作Web编辑器

TinyMCE的使用方法非常简单,只需在Html页面中增加两行即可:

<script src="tinymce.min.js">

</script>

<script>

tinymce.init({

selector: 'textarea'

});

</script>

</head>

<body>

<textarea>

TinyMCE是一款轻量级所见即所得开源Web编辑器…

</textarea>

</body>

Wax

开源协作Web编辑器

Wax是由Coko Foundation旗下的编辑器,之前是基于Substance上构建,现在用ProseMirror重建。Wax功能丰富,最初是为加利福利亚大学出版社书籍制作应用程序Editoria而构建的,它支持笔记,跟踪更改,查找和替换,列表,装饰等。但是Wax没有在线实时的协作支持,需要基于第三方插件才行。

Texture

texture是一个非常专业的开源的科学内容编辑器,用于生成JATS格式的专业科学内容(期刊文章的XML标准)。texture开放许可证,支持表格,图像,对数学的深入支持,参考和交叉引用,列表,元数据支持,列表继续等非常棒的功能。唯一的问题是和Wax一样缺乏实时协作功能。

开源协作Web编辑器

CKEditor 5

开源协作Web编辑器

CKEditor 5 是一款高质量Web编辑器最新版本。CKEditor最初名字叫FCKeditor,开始于2002年,在互联网拓荒年代就已经诞生并且开疆拓土了。从第三版本为了更加开放,成了Open Development Effort项目来促进CKEditor开源、协作和参与,FCKeditor正式改名为CKEditor。

开源协作Web编辑器

CKEditor 5则是更进一步,从其设计之初就是充分开源,甚至Github就有一个专门的ckeditor5-design 仓库来做CKEditor 5设计和早期的开发。

CKEditor 5界面非常时尚美观。以GPL开源协议发布,支持图像,表格,列表,通过插件支持数学公式,它支持与远程光标和选择的实时协作。

但是,实时协作功能都是通官方云服务和一些收费插件实现的。

CKEditor 5完全离线支持使用,但是一些高级功能(Inline,Balloon,Document版本)都需要远程支持。

移动支持也是如此,正在进行全面支持的工作。

Atlaskit

大约一年前,Atlassian推出并开源了自己的Atlaskit编辑器。Atlaskit包括一个完全成熟的生成可用的基于ProseMirror的Web编辑器。

开源协作Web编辑器

Atlaskit和Atlassian可能大家都很少听说过,但是说起JIRA大家可能耳闻能熟。Confluence WIKI也不会陌生。还有协助工具Trello可能也都用过。

Atlaskit编辑器是以Apache 2.0授权,这是一个非常宽松的开源许可证。它支持图像,表格和列表,而且对表格操支持实现相当棒,这是大多数编辑器都非常缺乏的,看下面动图:

开源协作Web编辑器

遗憾的是Atlaskit本身没有内置对数学公式输入的自持,但由于该编辑器本身是基于ProseMirror的,因此以插件形式添加也容易。

Atlaskit支持与远程游标和选择的实时协作,离线编辑支持非常完善。实时协作可以用于数百万用户生产环境上使用。移动端支持也很好。

Atlaskit编辑器中使用的徽标图标,以及许多其他Atlaskit组件,都基于ADG许可发布,该许可声明限制不能在Atlassian Universe之外使用它们。特别是图标被广泛使用并紧密集成到编辑器中。

开源协作Web编辑器

Atlaskit的编辑器因为多样化,开放和ProseMirror社区支持,是个目前最好的开源协作Web编辑器。

结论

构建一个基于Web的系统,其中编辑器中的实时协作是关键组件,本文我们介绍了几个这样的即插即用的开源协作Web编辑器,其中一些需要实际上还不能称做协作编辑器,需要通过添加插件或者自写协作服务器组件的方式才能实现,而CKEditor和Atlaskit则完整实现了良好体验的在线实时协作功能。

您可能还会对下面的文章感兴趣: