富文本编辑

引子

再次碰到须要使用富文本编辑的场景,发现了以前没有想到的一些点,在此整理一下。react

参考点

在使用富文本插件的时候,在比较选择时,我的发现如下几个参考点:git

  • 文档说明,这个能够节约不少时间,不管是比较和使用时。
  • 国际化,有的真没有国际化,连文档也没有说明。
  • 实现列表、连接、标题等各类效果是否使用了原生的 HTML 标签,其样式跟自身系统样式重置是否有冲突,其它显示编辑后富文本的地方也要考虑。
  • 字体的支持,加载额外的字体文件可能加大包的体积。
  • 图片上传的处理,有的插件须要本身写。
  • 视频插入的处理,有的插件只是插入一个连接,不一样的视频源可能效果会不同。
  • 判空,富文本里面可能一开始有默认的标签,只是看不到,获取的时候也拿获得,但其实是没有输入内容。
  • 初始化、内容改变、获取/失去焦点事件监听,嵌入其它框架时有用处。
  • 扩展,这个分为自定义和覆盖原有功能两种形式,看实际需求。

关于字体方面,见 Fontgithub

下面就是找到的一些免费开源的富文本插件比较。web

插件

如下仅供参考。框架

Quill

文档上说,Quill 是一个为兼容性和可扩展性而构建的所见即所得的现代编辑器。异步

截至 2019.12.12, 仍然处于有人维护状态,结合上面的考虑点,有下面的一些我的体会。编辑器

好的方面:工具

  • 有独立的包,大部分功能都不须要额外安装其它依赖。
  • 实现的格式效果,有自身单独的处理,例如 ul 标签的样式。
  • 支持部分视频网站分享连接插入。
  • 扩展支持自定义和覆盖。
  • 展现风格简约。

很差的方面:字体

  • 文档说明感受不怎么好用。
  • 没有国际化。
  • 图片异步处理须要单独重写处理,没有提供相应的 API 。
  • 工具栏和操做没有对应的提示信息。

Summernote

文档上说,Summernote 是一个超级简单的所见即所得的编辑器。网站

截至 2019.12.12, 仍然处于有人维护状态,结合上面的考虑点,有下面的一些我的体会。

好的方面:

  • 文档比较完整好找。
  • 事件和方法丰富,包含图片上传异步处理 API。
  • 支持国际化。
  • 工具栏和操做都会有提示信息,并且图片、表格伴有浮动操做工具。
  • 支持部分视频网站分享连接插入。
  • 扩展支持自定义。
  • 展现风格简约。

很差的方面:

  • 须要安装额外的依赖包 JQuery。
  • 依赖 Bootstrap 的样式和部分组件,但不是必需,也有不依赖的版本,若是以为很差看,须要自行写额外样式调整。
  • 编辑时的效果使用的是 HTML 标签原生的效果,例如 H 系列、ul、ol、table 。展现的地方须要重置样式。

UEditor

文档上说,UEditor 是所见即所得富文本 web 编辑器,具备轻量,可定制,注重用户体验等特色。

已无人维护了,在实际中使用过,主要功能仍是没有问题的,结合上面的考虑点,有下面的一些我的体会。

好的方面:

  • 文档详细,由于开发人员也都是国人。
  • 独立的包。
  • 支持国际化。
  • 实现的格式效果,部分有自身单独的重置处理。
  • 功能很强大且丰富,通常富文本有的都有。
  • 草稿本地存储。
  • 扩展支持自定义。

很差的方面:

  • 使用时初看像早期编辑器,一些交互的弹窗也很原始。
  • 使用的功能越多,配置相对其它插件要复杂一些。

Slate

文档上说,Slate 是一个彻底可定制的富文本编辑框架。

截至 2019.12.12, 仍然处于有人维护状态,结合上面的考虑点,有下面的一些我的发现。

好的方面:

  • 文档列出了内部实现的相关属性和方法,有中文版。
  • 独立的包。
  • 实现的格式效果,有自身单独的重置处理。
  • 支持部分视频网站分享连接插入。
  • 选择内容后支持浮动的操做工具。
  • 有对应定制的 react 版本。
  • 扩展支持自定义。

很差的方面:

  • 无国际化。
  • 偏重定制化,想要添加比较多的功能,须要花时间找对应包,看对应包文档。
  • 工具栏的交互跟其它插件有些不同,要先选择内容再选择格式才有效。
  • 提供的图片上传示例只支持图片源 URL 的方式。
  • react 使用起来,看文档比较复杂。

参考资料

相关文章
相关标签/搜索