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/quill
installed, 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
-
strict
removedPreviously 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. -
scrollingContainer
removedQuill 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
matchVisual
removed - 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.pasteHTML
removed - Deprecated alias todangerouslyPasteHTML
.
Keyboard
- Binding
key
is no longer case insensitive. To support bindings likekey: '@'
, modifiers are taken into account so the shift modifier will affect case sensitivity. - Binding
key
now 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
register
method added to allow dependent chains of registration. -
Static
formats
method now passes inscroll
. -
Blot constructor now requires
scroll
to 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.Style
is nowParchment.StyleAttributor
, andParchment.Attributor.Attribute
is 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.