CKEditor Wysiwyg Plugin
NOTE: The full_integration mode is not recommended for use in production! It is still experimental, and under massive development.
The plugin does not contain the CKEditor source (get it from their SVN - require >= 3.6). After installation of both the plugin and CKEditor, set the [ckeditor] editor_source option for this plugin to the path of the CKEditor ckeditor.js script.
The plugin has several modes of integration, determined by the [ckeditor] editor_type option:
|html_wrapper||CKEditor with HTML output wrapped in html-processor|
|full_integration||CKEditor with TracWiki output (experimental)|
|only_ticket||CKEditor with TracWiki output for ticket fields (experimental); leaves wiki editing as in Trac standard|
|only_wiki||CKEditor with TracWiki output for wiki pages (experimental); leaves ticket editing as in Trac standard|
|none||No integration - plain old textarea|
Using CKEditorPlugin looks like this:
The full_integration mode is the holy grail, but currently just a handful of elements are supported in this mode (see the tracwiki plugin for details on that) - help with this is needed!
- Does not co-exist with TracWysiwygPlugin - have only one of them enabled.
- When using the html_wrapper mode and editing an existing wiki page, the page will be rendered in HTML upon save (macros are lost, etc.)
Known Bugs / Limitations
- marker and text color is not working in headers (see Google-Groups)
- when inserting an image, only full path to image is working
- when entering a link manually, it is printed with an exclemation mark, see #9562
- Escaping of CamelCase words is only working the first time, see #9563
- copying lists from MS Word (tested with Word 2003) is not always working completely (in some browsers it the deep intention is lost)
Help wanted for further development:
- Killer Feature: Support TracWiki syntax (by HTML<->TracWiki conversions? or by making CKEditor's rendering engine emit TracWiki?)
- Insert WikiLinks using cool dialogs (e.g. choose existing page from TitleIndex, insert link to stubbed page & open new tab to create the stubbed page)
- Insert other kinds of TracLinks using cool dialogs (changesets, tickets, other resources...)
- Insert images intuitively (selector from attachments / repositories / upload from file-system as attachment or into repository, maybe even drag-and-drop)
- Macro-awareness - select macro to insert from supported macros, expand inserted macros inline
If you have any issues, create a new ticket.
Download the zipped source from here.
Install the plugin:
$ easy_install http://trac-hacks.org/svn/ckeditorplugin/trunk
Get the CKEditor package and deploy it in a URL-accessible path, e.g. the htdocs directory of your Trac environmemt:
$ mkdir /path/to/trac-env/htdocs/js $ svn checkout http://svn.ckeditor.com/CKEditor/releases/stable /path/to/trac-env/htdocs/js/ckeditor
Enable it from the Plugins section of the Administration panel, or by adding the following to the [components] section of your trac.ini:
[components] ckintegration.* = enabled
The following options can be specified in the [ckeditor] section of your trac.ini:
default values: cpp, csharp, java, js, python, sql, default, xml
editor_type Type of integrated editor. Possible types are:
- full_integration: CKEditor with TracWiki output (experimental),
- only_ticket: CKEditor with TracWiki output for ticket fields (experimental); leaves wiki editing as in Trac standard,
- only_wiki: CKEditor with TracWiki output for wiki pages (experimental); leaves ticket editing as in Trac standard,
- html_wrapper: CKEditor with HTML output wrapped in html-processor,
- none: No integration - leaves editing as in Trac standard
default value: full_integration
default value: site/js/ckeditor/ckeditor.js
You can also type [[TracIni(ckedior)]] in any Wiki-Page to get a list of possible options and their descriptions; see also description in plugins-panel.
Sample configuration (default values shown):
[ckeditor] code_styles = cpp, csharp, java, js, python, sql, default, xml editor_type = full_integration editor_source = site/js/ckeditor/ckeditor.js
tagging old version 1.0dev, before replacing by 1.1dev
Add various ignore patterns (Eclipse stuff, Pydev stuff, Git & hg stuff)
Initial import of the new and shiny 1.0dev
remove old 0.1
- sample.png (27.8 kB) -
Sample Screenshot of using CKEditorPlugin, added by framay on 11/16/11 09:15:43.