Upgrading to 2.0
Quill has been significantly modernized. Leveraging the latest browser-supported APIs, Quill now delivers a more efficient and reliable editing experience.
Quill
The Quill repository has been rewritten in TypeScript, providing an official TypeScript definition file.
- If you have
@types/quillinstalled, uninstall it, as it is no longer needed - SVG icons are now inlined in the source code, eliminating the need to set up loaders for .svg files in your bundler.
Options
-
strictremovedPreviously some changes that were small in practice (renames) but would warrant a semver major bump would be hidden under this configuration. This ended up being more confusing than helpful as we will no longer make use of this.
-
registry- added to allow multiple editors with different formats to coexist on the same page. Learn more. -
scrollingContainerremovedQuill will now automatically detect the scrollable ancestor, eliminating the need to provide this option. This new behavior is more robust and works seamlessly with nested scrollable elements.
Clipboard
convert- API changed to include both HTML and text and previous functionality is broken into multiple method calls (convert,onCapturePaste) to allow more surface to hook into.onCapturePaste- Added
Configuration
matchVisualremoved - Previously there was a choice between using visual or semantic interpretation of pasted whitespace; now just the semantic interpretation is used. Visual matching was expensive, requiring the DOM renderer which is no longer available in the new clipboard rewrite.pasteHTMLremoved - Deprecated alias todangerouslyPasteHTML.
Keyboard
- Binding
keyis no longer case insensitive. To support bindings likekey: '@', modifiers are taken into account so the shift modifier will affect case sensitivity. - Binding
keynow supports an array of keys to easily bind to multiple shortcuts. - Native keyboard event object is now also passed into handlers.
Parchment
-
All lists use
<ol>instead of both<ul>and<ol>allowing better nesting between the two. Copied content will generate the correct semantic markup for paste into other applications. -
Code block markup now uses
<div>to better support syntax highlighting. -
Static
registermethod added to allow dependent chains of registration. -
Static
formatsmethod now passes inscroll. -
Blot constructor now requires
scrollto be passed in. -
Attributors are exported as top-level classes.
Instead of accessing class attributor via
Parchment.Attributor.Class, you now use it atParchment.ClassAttributor. Similarly,Parchment.Attributor.Styleis nowParchment.StyleAttributor, andParchment.Attributor.Attributeis nowParchment.Attributor. -
Exports are using full names.
Instead of
Parchment.Scroll, you now useParchment.ScrollBlot. The similar change applies toParchment.Embed,Parchment.Text,Parchment.Block,Parchment.Inline, and more.
Delta
- Support for the deprecated delta format, where embeds had integer values and list attributes had different keys, is now removed
Browser
- Internet Explorer support is dropped.