Upgrading to 1.0

Quill 1.0引入了旨在提高定制Quill能力的主要变化。 接口在可能的情况下保持不变,本指南有助于弥补差距。

为了实现1.0的全部优势,我们鼓励对Quill 1.0采取全新的观点,并在本文档网站上重新审视基本主题。 通常情况下,你会发现即使你可以用旧的方式做事,也有一种更好的新方法。

Configuration

  • styles 已删除 - 以前版本的Quill允许通过<style>添加注入自定义CSS。 由于内容安全策略,此选项已被删除。 相反,你应该直接使用外部CSS。

API

  • getHTML 已删除 - 以前版本的Quill需要使用类名来标识行ql-lineid属性来标识特定行。 这不再是必需的,自定义API调用不再在DOM的现有innerHTML之上添加任何值。

  • setHTML 已删除 - 与许多在DOM之上具有数据层的编辑器一样,Quill不允许对底层HTML进行任意更改。以前Quill会检测到非法状态并对其进行更正,但这会使命名setHTML不真实,并且修正背后的推理是不直观的。 使用新的pasteHTML(译者注:这个api已经找不到了)可以适当地满足或改进setHTML的大多数用例(因为光标保存要好得多)。

  • addModule 已删除 - 模块现在根据初始的Quill configuration进行初始化,而不是使用单独的函数。

  • onModuleLoad 已删除 - 模块加载由主题处理,类似的行为应该通过扩展主题来实现。

  • destroy 已删除 - 不再需要,因为Quill不再保留对编辑器实例的引用,允许Javascript垃圾收集器按预期工作。

  • destroy 已更名 - 现在,一种新的API format为所有选择状态提供格式化功能,包括之前在prepareFormat`中介绍的那些状态。

  • 为了保持一致性,所有位置现在都是基于索引和长度的,而不是deleteTextformatTextformatLine有时使用的开始和结束表示,以及selection Api(如getSelectionsetSelectionselect-change事件)使用的Range对象有时使用的开始和结束表示。

  • registerModule 已更名 - 现在使用一个新的API register来向寄存器注册所有模块、主题和格式。

  • require 已更名 - 为了与ES6保持一致,重命名为import

  • addContainer 已变更 - 第二个参数被更改为允许在任何容器之前插入,而不仅仅是编辑器。因此,它不再是一个可选的布尔值,而是一个可选的HTMLElement。

Modules

  • 工具栏在使用自定义HTML元素初始化时,需要按钮为实际的HTMLButtonElements。 以前它允许任何具有适当类名的元素。

  • Snow工具栏不再添加或使用ql-format-separator,并将ql-format-group重命名为ql-formats

  • 作者身份和多光标模块已被临时删除。 类似的功能将在以后重新添加,可以单独使用,也可以在捆绑的协作模块中重新添加。

  • UndoManager已重命名为History

  • PasteManager已重命名为Clipboard,并将提供自定义复制和粘贴行为。

  • LinkTooltip已被移动到特定主题。随着 Bubble、videos 和formulas的添加,不再需要为链接打开单独的工具提示作为它自己的通用UI元素。旧的工具提示行为仍然存在于Snow中,但现在是特定于该主题的。

  • ImageTooltip已被删除,以支持更简单和更原生的流程。 图像按钮现在打开OS文件选择器,所选图像文件作为base64图像插入编辑器。

Deltas

某些内容的默认Delta表示已更改。 在所有情况下,在输入中使用Deltas的方法仍然支持旧格式,例如setContentsupdateContents。但输出的Deltas,例如text-changegetContents报告的将是新的形式。由于Parchment现在允许自定义内容和格式,因此可以完全自定义这些Delta表示。

  1. var newImage = {
  2. insert: { image: 'url' }
  3. };
  4. var oldImage = {
  5. insert: 1,
  6. attributes: {
  7. image: 'url'
  8. }
  9. };
  10. var newOrderedList = {
  11. insert: '\n',
  12. attributes: {
  13. list: 'ordered'
  14. }
  15. };
  16. var oldOrderedList = {
  17. insert: '\n',
  18. attributes: {
  19. list: true
  20. }
  21. };
  22. var newBullettedList = {
  23. insert: '\n',
  24. attributes: {
  25. list: 'bullet'
  26. }
  27. };
  28. var oldBullettedList = {
  29. insert: '\n',
  30. attributes: {
  31. bullet: true
  32. }
  33. };

Defaults

  • Quill以前使用内联样式来实现字体族和大小。类实现现在是默认的。要还原此功能,请参阅内容和格式

Browsers

  • Quill现在跟随其他主要的开源库,支持主要浏览器版本的最后两个版本。 已删除对IE9和IE10的支持,并添加了MS Edge。

  • Android浏览器支持现在适用于Android上的Chrome,而不是谷歌已逐步停止支持的Android浏览器。

Improvements

  • 能够添加新格式和内容,或使用Parchment修改现有格式和内容。

  • 添加了对嵌套列表,上标,下标,内联代码,代码块,标题,块引用,文本方向,视频和论坛支持的支持。

  • 能够使用类而不是内联样式进行格式化。

  • 新的基于工具提示的主题叫做Bubble

  • 使用格式数组改进工具栏初始化并使用自定义值进行自定义。

  • 工具栏图标现在使用SVG而不是内联PNG,允许自由调整图标大小,同时保持清晰度。 CSS现在也可用于轻松更改活动状态颜色,而不是默认的#06c蓝色。

  • 改进了在剪贴板中自定义粘贴解释的功能。

  • 提高了自定义键盘处理程序的能力。

  • 占位符配置选项。

  • 可编辑语法高亮代码块。

  • 几个新的API

  • 修复大量bug。