Skip to content

Latest commit

 

History

History
337 lines (212 loc) · 16.4 KB

README.md

File metadata and controls

337 lines (212 loc) · 16.4 KB

CKEditor 4 for Hippo CMS

Hippo-specific modifications

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.

External plugins

The following external plugins are included:

Versions

Script and version

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.

Get upstream changes

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

Release process

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.

How to check CKEditor version in the browser

Open the devtools / console and type on the console command line:

CKEDITOR.version

Deployment to Nexus

Prerequisites:

Deployment command:

mvn clean deploy

External plugin management

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 a new external plugin

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

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.

The remainder of this file contains the unmodified CKEditor README

CKEditor 4 - Smart WYSIWYG HTML editor Tweet

CKEditor 4 LTS - Smart WYSIWYG HTML editor Tweet

npm version GitHub tag CircleCI

Join newsletter Follow Twitter

⚠️ CKEditor 4: End of Life and Extended Support Model until Dec 2026

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.

Important update for CKEditor 4 Users

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.

About this repository

Master branch = CKEditor 4 LTS

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.

Getting CKEditor 4 (Open Source)

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.

Summary of options after the CKEditor 4 End of Life

Upgrading to CKEditor 5

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.

Using an outdated, unsupported version

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.

Signing an "Extended Support Model" contract

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.

About CKEditor 4

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.

CKEditor 4 screenshot

Getting started

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>

CKEditor 4 LTS

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>

Integrating with Angular, React, and Vue.js

Refer to the official usage guides for the ckeditor4-angular, ckeditor4-react, and ckeditor4-vue packages.

Manual download

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.

Features

  • 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.

Browser support

IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Chrome
Chrome (Android)
Safari
Safari
iOS Safari
iOS Safari
Opera
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.


Working with the ckeditor4 repository

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.

Code installation

There is no special installation procedure to install the development code. Simply clone it to any local directory and you are set.

Available branches

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.

Samples

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.

Code structure

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.

Building a release

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.

Testing environment

Read more on how to set up the environment and execute tests in the CKEditor 4 Testing Environment guide.

Reporting issues

Use the CKEditor 4 GitHub issue page to report bugs and feature requests.

License

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.22.1 and below

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.23.0-lts and above

CKEditor 4 LTS (starting from version 4.23.0-lts) is available under a commercial license only.