This repository contains Hippo-specific modifications of CKEditor 4. The build includes only the plugins used in Hippo CMS (see dev/builder/build-config.js). The code for the hippopicker plugin resides in the hippo-cms project.
The following external plugins are included:
The script /dev/builder/build.sh
needs a 'build version' parameter, which is burned into the generated code.
Hippo CMS uses the same version number as in the tag name (e.g. '4.9.2-h1').
A Hippo-specific CKEditor build adds a version number to the CKEditor version it extends, prefixed with -h
.
For example, version 4.9.2-h1
extends CKEditor 4.9.2
. The patch number
(1
in this example) is used to version the Hippo-specific CKEditor changes in that branch.
Each branch hippo/<version>
contains all commits in the CKEditor branch release/<version>
plus all Hippo-specific
modifications.
To get upstream changes, first add a remote for the upstream CKEditor repository:
git remote add -f upstream https://github.com/ckeditor/ckeditor4.git
When a new patch version is released upstream, its tag can be merged into the matching hippo-specific branch. For example, to merge upstream tag 4.9.3:
git fetch upstream
git checkout hippo/4.9.x
git merge 4.9.3
When a new minor version is released upstream, a new hippo-specific branch should be created based on the current latest hippo branch. The new upstream tag can then be merged into the new hippo branch. The new branch must be pushed to origin, so other people can fetch it too. For example, to upgrade from 4.9.x to 4.10.0:
git fetch upstream
git checkout hippo/4.9.x
git checkout -b hippo/4.10.x
git merge 4.10.0
git push origin -u hippo/4.10.x
Update the version number of the project if necessary (e.g when moving from 4.9.2 to 4.9.3). Also update the ckeditor version in:
- pom.xml
- package-lock.json
Add new branch to:
- Jenkinsfile
Easiest to use the release plugin:
mvn release:prepare
mvn release:perform
Prepare will ask for the release version and the next development version, and set a tag. Perform will deploy the tag to Maven2 Enterprise and push it to the remote.
Open the devtools / console and type on the console command line:
CKEDITOR.version
Prerequisites:
Deployment command:
mvn clean deploy
Only a part of each external plugin's code has to be included in the Hippo CKEditor build,
i.e. the part that should to into the CKEditor subdirectory plugins/XXX
.
The Maven build makes sure the dependencies are pulled in via node package manager (npm) and then copied to
the plugins directory using npm and the dev/builder/build.sh
script.
Adding an external plugin can be done by including them in the dependencies
property of the package.json.
If the external plugin does not contain a (valid)
package.json
file then you need to fork the github repository under the onehippo
github group and add the package.json
yourself.
Make sure to copy the plugin code from node_modules/
to plugins/
in dev/builder/build.sh
.
Add the plugin to the configuration of the Maven clean plugin in pom.xml
so the copied sources
will be cleaned too.
Updating an external plugin can be done by publishing a new version of the
plugin (see that plugin's README) to the hippo npm registry and then bumping to that version in the
package.json
.
CKEditor 4 was launched in 2012 and reached its End of Life (EOL) on June 30, 2023.
A special edition, CKEditor 4 LTS ("Long Term Support"), is available under commercial terms ("Extended Support Model") for anyone looking to extend the coverage of security updates and critical bug fixes.
With CKEditor 4 LTS, security updates and critical bug fixes are guaranteed until December 2026.
Starting July 1, 2024, on the first anniversary of the end of life of CKEditor 4, we will activate security notifications for CKEditor 4. This change will impact the open-source version 4.22 and all earlier versions served via our CDN. Read more about the planned changes in a dedicated article.
After June 30, 2023 the master
version of the LICENSE.md file changed to reflect the license of CKEditor 4 LTS available under the Extended Support Model.
This repository now contains the source code of CKEditor 4 LTS that is protected by copyright law.
You may continue using CKEditor 4.22.1 and below under the open source license terms. Please note, however, that the open source version no longer comes with any security updates, so your application will be at risk.
In order to download the open source version of CKEditor 4, use tags 4.22.1 and below. CKEditor 4.22.1 was the last version of CKEditor 4 available under the open source license terms.
CKEditor 5 is a great new editor with lots of exciting features.
Before upgrading, please be aware of the following changes:
- CKEditor 5 is a completely new editor. Upgrading is not as simple as replacing the folder with "ckeditor" - read more in the Migration from CKEditor 4 guide.
- CKEditor 5 is available only under the GPL copyleft license (or under a commercial license).
- Open source projects with a GPL-incompatible license may apply for a license under the Free for Open Source program.
You may continue using CKEditor 4.22.1 (or below). The license terms of the older CKEditor 4 versions have not changed. However, please note that by using software that is no longer maintained, you are introducing a security risk to your application.
If you are not ready to replace CKEditor 4 in your application yet, you may continue using CKEditor 4 until December 2026. CKEditor 4 LTS, available under the "Extended Support Model", will ship all important security updates and critical bug fixes, providing an interrupted editing experience for your end users. Please note that this version of CKEditor 4 is available only under a special agreement and requires a license key.
A highly configurable WYSIWYG HTML editor with hundreds of features, from creating rich text content with captioned images, videos, tables, media embeds, emoji, or mentions to pasting from Word and Google Docs and drag&drop image upload.
It supports a broad range of browsers, including legacy ones.
Using npm package
npm install --save ckeditor4
Use it on your website:
<div id="editor">
<p>This is the editor content.</p>
</div>
<script src="./node_modules/ckeditor4/ckeditor.js"></script>
<script>
CKEDITOR.replace( 'editor' );
</script>
Using CDN
Load the CKEditor 4 script from the CDN:
<div id="editor">
<p>This is the editor content.</p>
</div>
<script src="https://cdn.ckeditor.com/4.22.1/standard/ckeditor.js"></script>
<script>
CKEDITOR.replace( 'editor' );
</script>
Since the introduction of the LTS version of CKEditor (4.23.0-lts
) in June 2023, all future versions of CKEditor 4 contain -lts
in their version number.
All future versions of CKEditor 4 (4.23.0-lts and above) are released as CKEditor 4 LTS distributions and require a license key.
If you acquired the Extended Support Model for CKEditor 4 LTS, please read the CKEditor 4 LTS key activation guide.
In order to activate CKEditor 4 LTS, add licenseKey
configure the editor with a valid license key:
<script>
CKEDITOR.replace( 'editor', {
licenseKey: 'your license key'
} );
</script>
Refer to the official usage guides for the ckeditor4-angular
, ckeditor4-react
, and ckeditor4-vue
packages.
Visit the CKEditor 4 download section on the CKEditor website to download ready-to-use CKEditor 4 packages or to create a customized CKEditor 4 build.
- Over 500 plugins in the Add-ons Repository.
- Pasting from Microsoft Word, Excel, and Google Docs.
- Drag&drop image uploads.
- Media embeds to insert videos, tweets, maps, or slideshows.
- Powerful clipboard integration.
- Content quality control with Advanced Content Filter.
- Extensible widget system.
- Custom table selection.
- Accessibility conforming to WCAG and Section 508.
- Over 70 localizations available with full RTL support.
IE / Edge |
Firefox |
Chrome |
Chrome (Android) |
Safari |
iOS Safari |
Opera |
---|---|---|---|---|---|---|
IE8, IE9, IE10, IE11, Edge | latest version | latest version | latest version | latest version | latest version | latest version |
Find out more in the Browser Compatibility guide.
Attention: The code in this repository should be used locally and for development purposes only. We do not recommend using it in a production environment because the user experience will be very limited.
There is no special installation procedure to install the development code. Simply clone it to any local directory and you are set.
This repository contains the following branches:
master
– Development of the upcoming minor release.stable
– Latest stable release tag point (non-beta).latest
– Latest release tag point (including betas).release/A.B.x
(e.g.4.0.x
,4.1.x
) – Release freeze, tests, and tagging. Hotfixing.
Note that the master
branch is under heavy development. Its code did not pass the release testing phase, though, so it may be unstable.
Additionally, all releases have their respective tags in the following form: 4.4.0
, 4.4.1
, etc. LTS editions have -lts
at the end: 4.23.0-lts
, etc.
The samples/
folder contains some examples that you can use to test your installation. Visit CKEditor 4 Examples for plenty of samples showcasing numerous editor features, with source code readily available to view, copy, and use in your own solution.
The development code contains the following main elements:
- Main coding folders:
core/
– The core API of CKEditor 4. Alone, it does nothing, but it provides the entire JavaScript API that makes the magic happen.plugins/
– Contains most of the plugins maintained by the CKEditor 4 core team.skin/
– Contains the official default skin of CKEditor 4.dev/
– Contains some developer tools.tests/
– Contains the CKEditor 4 tests suite.
You can create a release-optimized version of the development code locally. Use the dev/builder/build.sh
script for that purpose:
> ./dev/builder/build.sh
A "release-ready" working copy of your development code will be built in the new dev/builder/release/
folder. An Internet connection is necessary to run the builder, at least for the first time.
Read more on how to set up the environment and execute tests in the CKEditor 4 Testing Environment guide.
Use the CKEditor 4 GitHub issue page to report bugs and feature requests.
Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
CKEditor 4 until version 4.22.1 was licensed under the terms of any of the following licenses of your choice:
- GNU General Public License Version 2 or later.
- GNU Lesser General Public License Version 2.1 or later.
- Mozilla Public License Version 1.1 or later.
CKEditor 4 LTS (starting from version 4.23.0-lts) is available under a commercial license only.