This repository is used for storing CKEditor modifications for JSDuck, API documentation framework that is used for the CKEditor 4 developer documentation.
- The
master
branch always refers to the official JSDuckmaster
branch. It's a development branch. - The
stable
branch contains the latest stable official JSDuck release plus CKEditor's modifications. Gem packages should be built from this branch. - The
ckeditor-customizations
branch contains all modifications made by the CKEditor team and can be used while updating JSDuck to reapply those changes.
More detailed guide can be found in the JSDuck wiki.
The most suitable version is ruby 1.9.3
. You may use RVM for your convenience.
- Install Sencha SDK Tools for your OS.
> sudo gem install rake rspec json rdiscount parallel dimensions rkelly-remix
- Install
sass
gem:> sudo gem install sass -v 3.1.18
(for ruby version >= 2)> sudo gem install sass -v 3.1.1
(for ruby version < 2)
> sudo gem install compass -v 0.12.2
> git clone git@github.com:ckeditor/jsduck.git
> cd jsduck
> git co stable
> rake configure
> rake ext4
(it gives a lot of warnings when executed for the first time — you can repeat it)- To generate the gem you first need to have a JSDuck-built documentation application available at
http://localhost/docs/
. Thejsduck/output
directory should be available underhttp://localhost/docs/
so the easiest way is to run from localhost's root:
> ln -s path/to/jsduck/output docs
> rake bump["0.0.2"]
(update version number if you made any changes)> rake gem
- If you want to commit a new version, remove the old gem and add a new one to the repository.
Read the instructions in the ckeditor-docs
repository.
- Rebuilding the gem package:
- If you modified JSDuck version (merged upstream's
master
), make sure to run allrake
tasks starting fromrake configure
in step 8 above. - If you only modified JSDuck code within a previously built version, it's enough to build the gem package, unless templates have been modified.
- Committing changes:
- All code modifications should be done in the
ckeditor-customizations
branch, so that they would be easily reapplicable in the future. - After making any changes, first commit code changes (this may be more than one commit), then bump the JSDuck version, build a new gem package, remove the old one from the repository and add the new one, then commit the rebuilt package.
- Testing:
For testing purposes you can use the script available in bin/ckeditor-jsduck
instead of constantly installing the rebuilt gem package. You need to temporarily modify the gruntfile.js
script from the CKEditor documentation repository to use this file. The cmd
should point to full path with bin/ckeditor-jsduck
instead of ckeditor-jsduck
.
If you modified JSDuck templates, then you need to run rake tasks up to rake gem
(excluding bumping up the version of course), otherwise bin/ckeditor-jsduck
will still be using old minified templates.
List of applied customizations:
- Fix possible XSS in template
index.php
file. Reported by Bruno da Silva aka ipsbruno.
- Updated
parallel
gem dependency to1.12.0
version.
- HTTPS support.
- Fixed ToC injection when
<h1>
is not the first element of a guide (it may be preceded by a license comment).
- Added support for the
expanded
property of guides menu items. - Implemented multi-level TOC in guides.
- Made sidebar wider.
- Fixed canonical URL for documentation loaded from CDN.
- Introduced
--head-html-common
config option which makes it possible to extend the<head>
of all templates.
- Gem name changed to
ckeditor-jsduck
to avoid conflicts. - Event arguments are automatically wrapped with the
eventInfo
object. - Developer's Guide table of contents tree is kept collapsed by default.
- Improved SEO by including meta tags in the Developer's Guide. They are configurable through the
guides.json
file. - Added these instructions.
=================================================================================== CKEditor documentation uses JSDuck, API documentation generator for Sencha JavaScript frameworks.
JSDuck is distributed under the terms of the GNU General Public License version 3.
JSDuck was developed by Rene Saarsoo, with contributions from Nick Poulden, Ondřej Jirman, Thomas Aylott, Dave Thompson, Ed Spencer, Rob Dougan, Scott Whittaker, Timo Tijhof, Brian Moeskau, Garry Yao, Yasin Okumus, Nicholas Boll and Katherine Chu.
Many thanks goes also to those who have most eagerly reported bugs: Ryan Nauman, Raphael Franchet, atian25, burnnat, Raphael Pigulla, Dmitry Bakaleinik, Alan Lindsay, Corey Butler, Nickolay Platonov, Matt Greer, Richard and Dmitry Pashkevich.
There are lots of others I haven't named here, who have provided their input.
See the Releases page.