This repository is used for storing CKEditor modifications for JSDuck, API documentation framework that is used for the CKEditor 4 developer documentation.
- The
masterbranch always refers to the official JSDuckmasterbranch. It's a development branch. - The
stablebranch contains the latest stable official JSDuck release plus CKEditor's modifications. Gem packages should be built from this branch. - The
ckeditor-customizationsbranch 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
sassgem:> 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/outputdirectory 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 allraketasks starting fromrake configurein 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-customizationsbranch, 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.phpfile. Reported by Bruno da Silva aka ipsbruno.
- Updated
parallelgem dependency to1.12.0version.
- 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
expandedproperty of guides menu items. - Implemented multi-level TOC in guides.
- Made sidebar wider.
- Fixed canonical URL for documentation loaded from CDN.
- Introduced
--head-html-commonconfig option which makes it possible to extend the<head>of all templates.
- Gem name changed to
ckeditor-jsduckto avoid conflicts. - Event arguments are automatically wrapped with the
eventInfoobject. - 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.jsonfile. - 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.
