This is the official developer documentation project for CKEditor. It uses the customized CKEditor JSDuck clone for compilation and is available online at http://docs.ckeditor.com.
All issues regarding CKEditor 4 Documentation should be reported in the ckeditor4
repository.
Follow the steps listed below to build CKEditor documentation locally.
- Ruby
- Java (JRE or OpenJDK)
- Node.js
- NPM
- grunt-cli
- Custom CKEditor JSDuck clone (installation instructions are provided below)
In order to avoid root
privileges issues, it is advised to use rvm to manage Ruby versions and gems. In a similar manner, nvm should be used to manage Node.js and npm installations. Finally, install grunt-cli
globally with npm i -g grunt-cli
.
Instructions provided below were tested on following versions of software:
- ruby v3.0.0
- openjdk v11.0.11
- Node.js v14.17.0
- npm v6.14.13
- grunt-cli v1.4.2
Clone this repository locally:
> git clone [email protected]:ckeditor/ckeditor4-docs.git
Go to the ckeditor4-docs
directory and update the submodules:
> cd ckeditor4-docs
> git submodule update --init --recursive
Clone the custom CKEditor JSDuck repository to a separate folder next to ckeditor4-docs
:
> cd ..
> git clone [email protected]:ckeditor/jsduck.git
Checkout the stable
branch of the jsduck
repository and install the latest ckeditor-jsduck-<version>.gem
:
> cd jsduck
> git checkout stable
> gem install ckeditor-jsduck-<version>.gem
Gems versions are listed here. Gem installation might take a few minutes.
It may be helpfull to add -- --with-cflags="-Wno-error=implicit-function-declaration"
to gem installation command if further doc generation fails:
> gem install ckeditor-jsduck-<version>.gem -- --with-cflags="-Wno-error=implicit-function-declaration"
Go back to the ckeditor4-docs
repository and install npm dependencies:
> cd ../ckeditor4-docs
> npm install
Then finally execute grunt build-serve
:
> grunt build-serve [--options]
You might encounter such error on umberto
task. Run ulimit -n 65535
(or any higher value that is permitted by hard limit ulimit -Hn
) in order to increase the limit of max open files.
Available options:
--dev
- use it to build documentation and view it locally,--skipApi
- skips rendering API docs,--skipValidation
- skips link validation,--clean
- when--dev
flag is used,--clean
enables to clear thebuild
directory before outputting new documentation
Use grunt docs
to build documentation without setting a server.
The repos/
folder contains submodules for the repositories currently included in the API documentation. As expected, the API is documented inline in the source code contained in these repositories, and is then integrated into the documentation files.
While the main CKEditor repository for API documents, ckeditor4, is available as a submodule, it is also possible to make the builder use its local copy to avoid submodule limitations and speed up API documentation work. There are two ways to achieve it:
-
Keeping
ckeditor4-docs/
andckeditor4/
folders in the same directory. -
Setting the
CKEDITOR_DEV_PATH
environment variable to point to yourckeditor4/
folder path.
See the LICENSE.md
file for licensing details.