富文本编辑

目录

引子

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

参考点

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

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

关于字体方面,见 Font

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

插件

以下仅供参考。

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 使用起来,看文档比较复杂。

参考资料

原文地址:https://www.cnblogs.com/thyshare/p/12050743.html