Upgrading to 1.0
Quill 1.0引入了旨在提高定制Quill能力的主要变化。 接口在可能的情况下保持不变,本指南有助于弥补差距。
为了实现1.0的全部优势,我们鼓励对Quill 1.0采取全新的观点,并在本文档网站上重新审视基本主题。 通常情况下,你会发现即使你可以用旧的方式做事,也有一种更好的新方法。
Configuration
styles
已删除 - 以前版本的Quill允许通过<style>
添加注入自定义CSS。 由于内容安全策略,此选项已被删除。 相反,你应该直接使用外部CSS。
API
getHTML
已删除 - 以前版本的Quill需要使用类名来标识行ql-line
和id
属性来标识特定行。 这不再是必需的,自定义API调用不再在DOM的现有innerHTML之上添加任何值。setHTML
已删除 - 与许多在DOM之上具有数据层的编辑器一样,Quill不允许对底层HTML进行任意更改。以前Quill会检测到非法状态并对其进行更正,但这会使命名setHTML不真实,并且修正背后的推理是不直观的。 使用新的pasteHTML(译者注:这个api已经找不到了)可以适当地满足或改进setHTML
的大多数用例(因为光标保存要好得多)。addModule
已删除 - 模块现在根据初始的Quill configuration进行初始化,而不是使用单独的函数。onModuleLoad
已删除 - 模块加载由主题处理,类似的行为应该通过扩展主题来实现。destroy
已删除 - 不再需要,因为Quill不再保留对编辑器实例的引用,允许Javascript垃圾收集器按预期工作。destroy
已更名 - 现在,一种新的API format为所有选择状态提供格式化功能,包括之前在prepareFormat`中介绍的那些状态。为了保持一致性,所有位置现在都是基于索引和长度的,而不是deleteText、formatText、formatLine有时使用的开始和结束表示,以及selection Api(如getSelection、setSelection和select-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的方法仍然支持旧格式,例如setContents
和updateContents
。但输出的Deltas,例如text-change
和getContents
报告的将是新的形式。由于Parchment现在允许自定义内容和格式,因此可以完全自定义这些Delta表示。
var newImage = {
insert: { image: 'url' }
};
var oldImage = {
insert: 1,
attributes: {
image: 'url'
}
};
var newOrderedList = {
insert: '\n',
attributes: {
list: 'ordered'
}
};
var oldOrderedList = {
insert: '\n',
attributes: {
list: true
}
};
var newBullettedList = {
insert: '\n',
attributes: {
list: 'bullet'
}
};
var oldBullettedList = {
insert: '\n',
attributes: {
bullet: true
}
};
Defaults
- Quill以前使用内联样式来实现字体族和大小。类实现现在是默认的。要还原此功能,请参阅内容和格式。
Browsers
Quill现在跟随其他主要的开源库,支持主要浏览器版本的最后两个版本。 已删除对IE9和IE10的支持,并添加了MS Edge。
Android浏览器支持现在适用于Android上的Chrome,而不是谷歌已逐步停止支持的Android浏览器。
Improvements
能够添加新格式和内容,或使用Parchment修改现有格式和内容。
添加了对嵌套列表,上标,下标,内联代码,代码块,标题,块引用,文本方向,视频和论坛支持的支持。
能够使用类而不是内联样式进行格式化。
新的基于工具提示的主题叫做Bubble。
使用格式数组改进工具栏初始化并使用自定义值进行自定义。
工具栏图标现在使用SVG而不是内联PNG,允许自由调整图标大小,同时保持清晰度。 CSS现在也可用于轻松更改活动状态颜色,而不是默认的#06c蓝色。
改进了在剪贴板中自定义粘贴解释的功能。
提高了自定义键盘处理程序的能力。
占位符配置选项。
可编辑语法高亮代码块。
几个新的API。
修复大量bug。