Releases: quilljs/quill
Releases · quilljs/quill
Version 2.0.0
We are thrilled to announce the release of Quill 2.0! Please check out the announcement post.
Major Improvements
- Quill is now a valid ESM package for better ecosystem (e.g. bundlers) and tree-shaking support
- Nested Quill support #3590
- Improved IME and spell corrector support #3807
- Semantic cleanups for TEXT_CHANGE event #3778
- History: Record selection in history module #3823
- Auto detect scrolling container #3840
- Clipboard: Improve support for pasting from Google Docs and Microsoft Word
Performance Improvements
Quill 2.0 includes many performance optimizations, the most important of which is the improved rendering speed for large content.
- Improve inserting performance #3815
- Avoid fetching selections when possible #3538
- No need to setContents when container is empty #3539
Code Modernization
- Migrated to TypeScript
- Provided official TypeScript declarations
- Migrated to Vitest for unit testing
- Migrated to Playwright for E2E testing
- Migrated website to Gatsby
All Changes
- Improve keyboard docs by @thomsbg in #2057
- Fixed a very very minor typo on line 102. :) by @parthdesai93 in #2073
- fix typo by @fengyuanchen in #2087
- Invalid
}
on line 171 in api/contents.md by @parthdesai93 in #2108 - Corrected delta displayed in video code block in Medium clone guide by @MicahLyle in #2122
- Correct typo by @bflatmajor in #2143
- Fix unmatched braces by @bflatmajor in #2145
- Fix typo: Draft -> Quill by @1c7 in #2219
- Update formats.md by @vojtechsebo in #2223
- Use DOMParser to safely parse html without script execution by @RyanV in #2226
- bypass uploader if clipboardData has rich text by @RyanV in #2227
- fix sauce labs + travis for PRs by @jhchen in #2250
- Generate more accurate deltas from typing by @dgreensp in #2252
- Prevent code-token attribute in deltas by @dgreensp in #2259
- Prevent icon-picker from triggering unnecessary layout reflow by @leandrogaspar in #2269
- fix insert text before block embed by @lixiaoyan in #2278
- Emit single change when typing enter on empty list line by @jbbakst in #2279
- Fix invalid URL on the documentation by @sisidovski in #2301
- Use new quill-delta from SHA by @dgreensp in #2311
- Fix a typo by @jfix in #2327
- Remove custom diff logic in favor of improved Delta#diff by @dgreensp in #2348
- Fix Cursor blot restoration and selection preservation by @dgreensp in #2354
- Fix tabnabbing vulnerability in Snow theme by @jonathanlloyd in #2439
- setSelection missing default length values in docs by @philraj in #2452
- Update cloning-medium-with-parchment.md by @bjenkins24 in #2457
- clearer language by @philraj in #2456
- Add link table to dev setup guide by @Percipient24 in #2491
- Fix collaborative undo correctness (fixes #2105) by @dgreensp in #2500
- Correctly convert mixed lists by @alecgibson in #2581
- fix: Inconsistent with code by @tboevil in #2569
- Move drag blocking to
Scroll
by @alecgibson in #2596 - Fix direction button in the demo by @benbro in #2649
- Update delta.md by @unitehenry in #2675
- Small edits for grammar and readability by @DillonBroadus in #2710
- fix for #2585 by @edhowler in #2682
- Fix tab nabbing vulnerability in formatted links by @d4l-w4r in #2674
- Unblocks Grammarly by @A-gambit in #3005
- docs: Fix simple typo, returing -> returning by @timgates42 in #3003
- Backspace at the header beginning should keep the format by @luin in #3013
- Fix length mismatch when copying code by @luin in #3028
- Fix pasting in checklist does not preserve indentation by @luin in #3064
- Keep list numbers continuous when separated by certain elements by @luin in #3086
- Handle native undo/redo by @luin in #3115
- Update keyboard.md by @haqer1 in #3043
- Ignore mutations happens in nested Quill instance by @luin in #3223
- Update keyboard.md by @mashuDuek in #3221
- Header/paragraph doesn't reset list numbering in Firefox by @luin in #3272
- Cut across lines shouldn't affect the formatting of the line above by @luin in #3286
- Fix checkbox not checkable on Firefox by @luin in #3293
- fix extension.md by @ndNovaDev in #3295
- fix extension.md by @ndNovaDev in #3294
- Update quickstart.md typo by @gan-h in #3314
- Fix insert inline embed with delete before block embed by @tzyl in #2882
- Discontinue inline formats on enter by @luin in #3428
- getLeaf() should ignore non-leaf blots by @luin in #3489
- Fix getBounds of empty text nodes by @luin in #3491
- Other list types should also reset list numbers by @luin in #3506
- Move code escaping to
html()
by @luin in #3531 - Keep cursor unlinked to avoid elements being pushed down inside by @luin in #3534
- Avoid fetching selections when possible by @luin in #3538
- No need to setContents when container is empty by @luin in #3539
- Support OT for table by @luin in #3590
- Issue/3336 repeated style by @Dora1604 in #3337
- Improve Tab handling in code block by @luin in #3593
- typo by @joelcarrier in #3581
- Fix selection-change not firing on DOM mutations by @luin in #3591
- Initial TypeScript setup by @luin in #3598
- Migrate remaining files to TypeScript by @luin in #3631
- TypeScript compatibility improvement by @luin in #3651
- Fix typo in themes docs by @derrickreimer in #3477
- Tooling updates by @luin in #3681
- Keep newlines in pre tag by @luin in #3687
- Declare module '*.svg' by @SCG82 in #3656
- Fix clipboard typing by @luin in #3686
- Use Playwright for E2E tests by @luin in #3695
- Add missing typing for Quill.find by @luin in #3705
- Small doc fix by @diegohaz in #3426
- Fix typo in comparison-with-other-rich-text-editors.md by @eltociear in #3400
- Add SMS to link protocol whitelist by @anish2690 in #2851
- Refactor Selection#scrollIntoView() by @luin in #3717
- 🏷️ Add
@types/lodash.clonedeep
types by @alecgibson in #3736 - 🏷️ Fix Toolbar
Handler
type by @alecgibson in #3730 - 🐛 Allow string selector for container by @xavivars in #3755
- Upgrade quill-delta for semantic cleanups by @luin in #3778
- Fix applyDelta with block embed by @luin in #3777
- Lint test files by @luin in #3782
- Fix embed inherits formats unexpectedly by @luin in #3783
- 🏷️ Fix
Quill.getText()
arguments by @alecgibson in https://github.com/quilljs/quil...
Version 2.0.0-rc.5
- Clipboard Add support for Quill v1 list attributes
- Fix overload declarations for
quill.formatText()
and other methods - Expose Bounds type for getBounds()
- Expose Range type
- Allow ref for insertBefore to be null
Version 2.0.0-rc.4
- Include source maps for Parchment
- Clipboard Support pasting links copied from iOS share sheets
- Fix config parsing where undefined values were kept
- Expose types for Quill options
- Remove empty .css.js files generated by bundlers
Version 2.0.0-rc.3
- Fix
Quill#getSemanticHTML()
for list items - Remove unnecessary Firefox workaround
- Clipboard Fix redundant newlines when pasting from external sources
- Add
formats
option for specifying allowed formats
Version 2.0.0-rc.2
- Fix toolbar button state not updated in some cases
- Narrower
BubbleTheme.tooltip
type - Fix
Selection#getBounds()
when starting range at end of text node - Improve compatibility with esbuild
Version 2.0.0-rc.1
- Remove unnecessary lodash usages.
Version 2.0.0-rc.0
- Clipboard Convert newlines between inline elements to a space.
- Clipboard Avoid generating unsupported formats on paste.
- Clipboard Improve support for pasting from Google Docs and Microsoft Word.
- Clipboard Ignore whitespace between pasted empty paragraphs.
- Syntax Support highlight.js v10 and v11.
Version 2.0.0-beta.2
- Fix IME not working correctly in Safari.
- Clipboard Support paste as plain text.
- Fix
Quill.getText()
not respectinglength
parameter. - History Fix redo shortcut not working on Linux and Windows.
Version 2.0.0-beta.1
- Fix syntax label from "Javascript" to "JavaScript".
- Fix typing errors for emitter.
- Inline SVG images for easier bundler setup.
- Improve typing for Registry.
Version 2.0.0-beta.0
In the upcoming 2.0 release, Quill has been significantly modernized. Leveraging the latest browser-supported APIs, Quill now delivers a more efficient and reliable editing experience.
Major Improvements
- Nested Quill support #3590
- Improved IME and spell corrector support #3807
- Semantic cleanups for TEXT_CHANGE event #3778
- History: Record selection in history module #3823
- Auto detect scrolling container #3840
Performance Improvements
Quill 2.0 includes many performance optimizations, the most important of which is the improved rendering speed for large content.
- Improve inserting performance #3815
- Avoid fetching selections when possible #3538
- No need to setContents when container is empty #3539
Code Modernization
- Migrated to TypeScript
- Provided official TypeScript declarations
- Migrated to Vitest for unit testing
- Migrated to Playwright for E2E testing
- Migrated website to Gatsby
All Changes
- Fix UI node interactions with line-level navigation shortcuts #3898
- Use
<strike>
instead of<s>
for Strike format Commit - Keyboard: Backspace will keep the format when previous line is empty #3013
- Keyboard: Discontinue inline formats on enter #3428
- Fix length mismatch when copying code #3028
- Keep list numbers continuous when separated by certain elements #3086
- Header/paragraph doesn't reset list numbering in Firefox #3272
- Fix
Quill#setContents()
on block embed ending Commit - Track all implicit newline indexes and shift for delete Commit
- Clipboard: Fix pasting in checklist does not preserve indentation #3064
- Clipboard: Prefer file over html when uploading Commit
- Clipboard: Keep newlines in pre tag #3687
- Clipboard: Cut across lines shouldn't affect the formatting of the line above #3286
- getLeaf() should ignore non-leaf blots #3489
- Selection: Fix getBounds of empty text nodes #3491
- Keep cursor unlinked to avoid elements being pushed down inside #3534
- Fix combineFormats with multiple values repeated #3336
- Fix selection-change not firing on DOM mutations #3591
- Improve Tab handling in code block #3593
- Add SMS to link protocol whitelist #2851
- Fix embed inherits formats unexpectedly #3783
- Fix HTML and Delta not matching #3784
- Fix inline embed insertions with applyDelta() #3793
- Fix inserting newlines into formatted text #3582
- History: Pass source for history actions #3514
- History: Handle native undo/redo #3115
- Fix block embed attributor errors #3825
- Clipboard: getHTML() should include outer tag when range is entire line #3850
New Contributors
- @parthdesai93 made their first contribution in #2073
- @fengyuanchen made their first contribution in #2087
- @MicahLyle made their first contribution in #2122
- @bflatmajor made their first contribution in #2143
- @1c7 made their first contribution in #2219
- @vojtechsebo made their first contribution in #2223
- @RyanV made their first contribution in #2226
- @dgreensp made their first contribution in #2252
- @leandrogaspar made their first contribution in #2269
- @lixiaoyan made their first contribution in #2278
- @jbbakst made their first contribution in #2279
- @sisidovski made their first contribution in #2301
- @jfix made their first contribution in #2327
- @jonathanlloyd made their first contribution in #2439
- @philraj made their first contribution in #2452
- @bjenkins24 made their first contribution in #2457
- @Percipient24 made their first contribution in #2491
- @alecgibson made their first contribution in #2581
- @tboevil made their first contribution in #2569
- @unitehenry made their first contribution in #2675
- @DillonBroadus made their first contribution in #2710
- @edhowler made their first contribution in #2682
- @d4l-w4r made their first contribution in #2674
- @A-gambit made their first contribution in #3005
- @timgates42 made their first contribution in #3003
- @haqer1 made their first contribution in #3043
- @mashuDuek made their first contribution in #3221
- @ndNovaDev made their first contribution in #3295
- @gan-h made their first contribution in #3314
- @tzyl made their first contribution in #2882
- @Dora1604 made their first contribution in #3337
- @joelcarrier made their first contribution in #3581
- @derrickreimer made their first contribution in #3477
- @SCG82 made their first contribution in #3656
- @diegohaz made their first contribution in #3426
- @eltociear made their first contribution in #3400
- @anish2690 made their first contribution in #2851
- @xavivars made their first contribution in #3755
- @kalys made their first contribution in #3514
- @taozhou-glean made their first contribution in #3780
- @cmrd-senya made their first contribution in #3615
- @bmakuh made their first contribution in #3845
- @fstrelczuk made their first contribution in #3609
- @dlitsman made their first contribution in #3877
- @fnlctrl made their first contribution in #3899
Full Changelog: v1.3.6...v2.0.0-beta.0