.. image:: https://travis-ci.org/collective/collective.ckeditor.svg
:target: https://travis-ci.org/collective/collective.ckeditor
.. image:: https://coveralls.io/repos/collective/collective.ckeditor/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/collective/collective.ckeditor?branch=master
Introduction
============
This addon is a ckeditor_ integration for Plone. This release includes ckeditor_ version 4.12.1.
.. contents::
How to install
==============
You can install it as any Plone addon. Please follow official documentation_.
The code source can be found at
https://github.com/collective/collective.ckeditor
Please report issues at
https://github.com/collective/collective.ckeditor/issues
Dependencies
------------
* Plone >= 4
* collective.plonefinder_
Translations
============
This product has been translated into
- Spanish.
- French.
- Italian.
You can contribute for any message missing or other new languages, join us at `Plone Collective Team <https://www.transifex.com/plone/plone-collective/>`_ into *Transifex.net* service with all world Plone translators community.
Upgrades
========
Go to ZMI-->portal_setup-->Upgrades, choose "collective.ckeditor:default"
profile and execute the upgrade steps.
4.3.0
-----
Release 4.3.0 comes with the **Enhanced Image** plugin (`image2`). It is not
enabled by default as it removes some of the advanced functionality provided by
the default image plugin (`image`). However, the **Enhanced Image** plugin
provides the ability to add a caption together with the image. It is also much
more user-friendly.
To enable the plugin, you need to setup `ckeditor_properties` through generic
setup `propertiestool.xml`::
<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
<object name="ckeditor_properties" meta_type="Plone Property Sheet">
<property name="removePlugins" type="lines">
<element value="image"/>
</property>
<property name="plugins" type="lines">
<element value="ajaxsave;/++resource++cke_ajaxsave/plugin.js"/>
<element value="image2;/++resource++ckeditor/plugins/image2/plugin.js"/>
</property>
</object>
</object>
This disables the `image` (default) plugin and enables the `image2` plugin.
The `image2` plugin comes with two specific settings (configurable only through
generic setup)::
<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
<object name="ckeditor_properties" meta_type="Plone Property Sheet">
<property name="image2_captionedClass" type="string">image</property>
<property name="image2_alignClasses" type="lines">
<element value="image-left"/>
<element value="image-dummy"/>
<element value="image-right"/>
</property>
</object>
</object>
The settings are `image2_captionedClass` and `image2_alignClasses`.
The values above are the default values.
If you enable the plugin, you also need to setup Plone to accept
the `figcaption` tag.
This is done by configuring HTML filtering with a setup handler like::
def enable_figcaption(p):
""" Allow figcaption as valid tag in portal_transforms safe_html"""
from Products.PortalTransforms.Transform import make_config_persistent
pt = getToolByName(p, 'portal_transforms')
tid = 'safe_html'
if not tid in pt.objectIds():
return
trans = pt[tid]
tconfig = trans._config
validtags = tconfig['valid_tags']
validtags.update({'figcaption': 1})
make_config_persistent(tconfig)
trans._p_changed = True
trans.reload()
log.info('added figcaption as valid tag')
CKEditor plugins
================
`balloontoolbar` plugin
-----------------------
provided since version 4.8.0
Not enabled by default, this plugin provides an API to setup context sensitive toolbars.
To enable the plugin, add ``balloontoolbar;/++resource++ckeditor/plugins/balloontoolbar/plugin.js``
to the `Plugins` field in CKEditor control panel (``@@ckeditor-controlpanel``).
`uploadimage` plugin
--------------------
provided since version 4.7.0
Enabled by default, this plugin manages support for uploading images that were dropped or pasted into the editor.
`nonbreaking` plugin
--------------------
provided since version 4.4.5.
When enabled, the plugin provides keyboard shortcuts to insert non breaking chars:
- ``Ctrl-Alt-Space`` for non breaking space,
- ``Ctrl-Alt-Hyphen`` for non breaking hyphen.
Corresponding buttons can also be configured in the toolbar:
- ``NbSpace``
- ``NbHyphen``
To enable the plugin, add ``nonbreaking;/++resource++cke_nonbreaking/plugin.js``
to the `Plugins` field in CKEditor control panel (``@@ckeditor-controlpanel``).
Or setup `ckeditor_properties` through generic setup `propertiestool.xml`::
<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
<object name="ckeditor_properties" meta_type="Plone Property Sheet">
<property name="plugins" type="lines">
<element value="ajaxsave;/++resource++cke_ajaxsave/plugin.js"/>
<element value="nonbreaking;/++resource++cke_nonbreaking/plugin.js"/>
</property>
</object>
</object>
`tableresize` plugin
--------------------
When enabled, the plugin makes it easy to change the table columns width by
drag/dropping it from left to right and right to left.
To enable the plugin, add ``tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js``
to the `Plugins` field in CKEditor control panel (``@@ckeditor-controlpanel``).
Or setup `ckeditor_properties` through generic setup `propertiestool.xml`::
<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
<object name="ckeditor_properties" meta_type="Plone Property Sheet">
<property name="plugins" type="lines" purge="False">
<element value="tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js"/>
</property>
</object>
</object>
Development
===========
.. attention::
ConfigurationError
If you try to run a Zope/Plone instance with a collective.ckeditor
checkout, your instance will break with a ``ConfigurationError``::
Directory .../browser/ckeditor does not exist.
After checking out collective.ckeditor sources, run the included buildout.
This installs and runs the ``copy_ckeditor_code`` script. It takes care of
copying ckeditor code in the appropriate ``browser/ckeditor`` directory.
The ``browser/ckeditor`` directory makes ckeditor javascript code available to
the browser at::
http://yourplonesite/++resource++ckeditor/
How to Release
--------------
Obviously, the ckeditor code also needs to be included in the released eggs.
``collective.ckeditor`` registers an entry point for ``zest.releaser`` that (if
called properly) takes care of copying the code when preparing the release.
However, in order to take advantage of the entry point, you have to use the
``bin/fullrelease`` locally installed by the development buildout instead of
a globally installed ``fullrelease``.
Only the local ``bin/fullrelease`` script can see the entry_point registered by
``collective.ckeditor``.
How to update to a newer version of CKEditor
--------------------------------------------
Valid for CKEditor 4
1. Go to ``dev/build-ckeditor``
2. Update plugin versions computation in ``image2.sh``, ``moono.sh``,
``scayt`` and ``wsc`` in ``scayt.sh``
3. Issue the following command ``CKEDITOR_VERSION=4.x.x make``
4. Run ``bin/copy_ckeditor_code``
5. Test
6. Add untracked files ``git add ../../src/collective/ckeditor/_src/ckeditor/``
7. Commit
If you need unminified JS to debug the release,
step 3 can be replaced with::
MINIFIED_JS=--leave-js-unminified CKEDITOR_VERSION=4.x.x make
Tests status
------------
This add-on is tested using Travis CI. The current status of the add-on is:
.. image:: https://img.shields.io/travis/collective/collective.ckeditor/master.svg
:target: http://travis-ci.org/collective/collective.ckeditor
.. image:: https://img.shields.io/coveralls/collective/collective.ckeditor/master.svg
:target: https://coveralls.io/r/collective/collective.ckeditor
.. image:: http://img.shields.io/pypi/v/collective.ckeditor.svg
:target: https://pypi.python.org/pypi/collective.ckeditor
Credits
=======
Companies
---------
* `Makina Corpus <http://www.makina-corpus.com>`_
* `Ecreall <http://www.ecreall.com>`_
* `BubbleNet <http://bubblenet.be>`_
* `Hexagonit <http://www.hexagonit.fi>`_
Contributors
------------
- Kai Lautaportti <kai.lautaportti@hexagonit.fi>
- Giacomo Spettoli <giacomo.spettoli@gmail.com>
- Godefroid Chapelle <gotcha@bubblenet.be>
- Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>
- Jean-Mat Grimaldi <jeanmat.grimaldi@gmail.com>
- Michael Smith <msmith64@naz.edu>
- Victor Fernandez de Alba <sneridagh@gmail.com>
- Kim Paulissen <spereverde@gmail.com>
- Jean-Michel FRANCOIS aka toutpt <toutpt@gmail.com>
- Gauthier Bastien <gauthier@imio.be>
- Leonardo J. Caballero G. <leonardocaballero@gmail.com>
.. _documentation: http://plone.org/documentation/kb/installing-add-ons-quick-how-to
.. _FCKEditor: http://plone.org/fckeditor
.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif
.. _makinacom: http://www.makina-corpus.com
.. _ckeditor: http://ckeditor.com/
.. _collective.plonefinder: http://plone.org/products/collective.plonefinder
Changelog
=========
4.10.1 (2021-10-01)
-------------------
- Fix CKEditor not packaged properly in 4.10.0 release.
[aduchene]
- Use zest.releaser = 6.22.1.
[aduchene]
4.10.0 (2021-06-11)
-------------------
- Add disallowedContent option to blacklist content.
[naro, gotcha]
4.9.1 (2021-02-12)
------------------
- Add Transifex.net service integration to manage the translation process.
[macagua]
- Add Spanish translation
[macagua]
- AjaxSave plugin, add message when nothing saved because nothing changed
(Content already saved (nothing changed).)
[gbastien]
- AjaxSave plugin, added `async:true` attribute so it is possible to set it
to `async:false` and make sure content is saved before continuing.
[gotcha, gbastien]
4.9.0 (2019-09-12)
------------------
- Update to CKEditor 4.12.1
[gotcha]
4.8.3 (2018-11-13)
------------------
- AjaxSave plugin, defend against not traversable objects like plone.registry
records
[gotcha]
4.8.2 (2018-10-12)
------------------
- refactor AjaxSave plugin
- fix for Archetypes
- support for plone.app.contenttypes
- support for formlib portlets
[gotcha]
4.8.1 (2018-07-10)
------------------
- CKEditor language is coherent with edit view language
[gotcha]
4.8.0 (2018-06-22)
------------------
- Update to CKEditor 4.9.2
Include not enabled balloontoolbar plugin
[gotcha]
4.7.2 (2017-12-15)
------------------
- Make `uploadimage` `resolveuid` links relative.
[gotcha]
4.7.1 (2017-12-08)
------------------
- `uploadimage` support uses `resolveuid`.
[gotcha]
4.7.0 (2017-12-01)
------------------
- Enable `uploadwidget` and `uploadimage` plugins.
Corresponding upgrade step
(Now depends on `plone.api`)
[gotcha]
4.6.0 (2017-08-18)
------------------
- Update to CKEditor 4.7.2
[gotcha]
4.5.0 (2017-02-24)
------------------
- Add a setting for CKEditor skin: colored or flat buttons
Default skin remains Moonocolor, colored buttons.
Flat buttons comes from the new Moono-lisa skin (see http://ckeditor.com/addon/moono-lisa)
[gotcha]
To avoid ugly border-bottom on buttons in default Plone 4 skin: add the
following style to your CSS::
#content a.cke_button {
border-bottom: 0;
}
#content a.cke_button:hover {
border-bottom: #ccc 0.1em solid;
}
- Update to CKEditor 4.6.2
[gotcha]
4.4.5 (2016-11-23)
------------------
- ``nonbreaking`` plugin: used to insert non breaking spaces and hyphens.
[gotcha]
4.4.4 (2016-05-02)
------------------
- Fix overloading settings: it should be empty dict rather than None
[gotcha]
4.4.3 (2016-05-02)
------------------
- Enable settings overloading for formlib wysiwyg widget
[gotcha]
4.4.2 (2016-04-13)
------------------
- Fix customization per widget of filexxxBrowserUrl, depending on language
[gotcha]
4.4.1 (2016-04-13)
------------------
- Enable settings overloading for plone.app.z3cform wysiwyg widget
[gotcha]
- Enable customization per widget of filexxxBrowserUrl, depending on language
[gotcha]
4.4.0 (2016-03-11)
------------------
- Store custom toolbars in registry.
(With previous change, enable different toolbars per widget)
[gotcha]
- Improve settings overloading per widget
[gotcha]
- Load js only if you are an authenticated user.
[bsuttor]
4.3.5 (2016-02-16)
------------------
- Fix image preview in ckeditor when clicking on main image in pop-pup window.
[boulch]
4.3.4 (2016-01-21)
------------------
- Fix context of ckeditor_plone_config.js
when called by plone.app.form.widgets.wysiwygwidget
when adding a portlet.
[gotcha]
4.3.3 (2016-01-20)
------------------
- Fix context of ckeditor_plone_config.js
when called by plone.app.form.widgets.wysiwygwidget
when editing a portlet.
[gotcha]
4.3.2 (2016-01-08)
------------------
- Fix default value of image2_alignClasses (plus upgrade step)
[gotcha]
- Add option to not minify JS to build-ckeditor scripts
[gotcha]
- Fix build-ckeditor scripts to keep option to not use
image2 plugin
[gotcha]
- Update ckeditor accordingly
[gotcha]
- Check validity of image2_alignClasses
[gotcha]
4.3.1.1 (2015-01-05)
--------------------
- Re-publish egg with generated static resources
[ebrehault]
4.3.1 (2015-12-14)
------------------
- Update to CKeditor 4.5.6
[gotcha]
- Add some robot tests
[spreverde, gotcha]
- Add defaultTableWidth option to control panel to set the default table width in the table dialog window.
4.3.0b2 (2014-06-19)
--------------------
- Fix javascript order though GS.
[montypie]
4.3.0b1 (2014-06-19)
--------------------
- Add image2 plugin and its dependencies.
[gotcha]
- Add image2_alignClasses and image2_captionedClass setting to setup
image2 plugin.
[gotcha]
- Updated to CKeditor 4.4.1.
[gotcha]
- Add removePlugins option to control panel to allow to deactivate plugins.
[gotcha]
4.2.0 (2014-06-05)
------------------
- Show actual url in link dialog besides resolveuid.
[gotcha]
4.1.1 (2014-03-27)
------------------
- Fix upgrade steps to avoid overwriting custom configuration.
[gotcha]
- Updated to CKeditor 4.3.4
[gotcha]
4.1 (2014-03-27)
----------------
- Expand setup of Advanced Content filter (ACF).
[spereverde, gotcha]
4.0.0 (2014-02-05)
------------------
- Updated to CKeditor 4.3.2
[gotcha]
- Add extraAllowedContent option to setup filter rules.
[gotcha]
- Backward compatibility of toolbar settings
[gotcha]
- Moved to CKeditor 4.2.3
[gbastien]
3.6.12 (2013-09-05)
-------------------
- Make it possible to enable/disable SCAYT by default
[gbastien]
3.6.11 (2013-05-30)
-------------------
- Stay compatible with IE<9, do not use indexOf in JS
[gbastien]
3.6.10 (2013-05-30)
-------------------
- Updated ckeditor to 3.6.6.1
[vincentfretin]
- travis setup / buildout infra
[kiorky]
3.6.9 (2013-05-29)
------------------
- Works under Plone 4.3.
[thomasdesvenain]
3.6.8 (2012-12-13)
------------------
- Update install and uninstall to change the default_editor site
property instead of the wysiwyg_editor memberdata property.
[maurits]
- Also check the default_editor site property when determining whether
the member wants to use CKeditor.
[maurits]
- Changed the way external plugins are registered. It's better to use the three
parameter variant of ``CKEDITOR.plugins.addExternal`` because this will make
the base URL for the plugin resources available within the plugin code as
``this.path`` correctly. Otherwise ``this.path`` contains the full URL to the
plugin script itself which consequently breaks loading of related resources
(images, translations, etc).
[dokai]
- Refactored the ``ck_ruid_to_url`` transform to use plone.app.uuid to transform
UIDs to URLs. This avoids using reference_catalog in favor of portal_catalog
and appears to fix issues with Dexterity types not available through the
reference_catalog.
[dokai]
- Limited string length to be searched under 3000 characters by re.search method.
[taito]
3.6.7 (2012-08-20)
------------------
- take care of external stylesheets registered with an absolute URL.
[gotcha]
- fix plugins (add migration)
[kiorky]
- refresh translations
[kiorky]
- translate styles menu
[kiorky]
3.6.6 (2012-07-05)
------------------
- Fix default value for images
[kai.hoppert@tomcom.de]
- Add a duplicate directory for ckeditor sources: it needs a more ambitious
patch but fix a development installation
[kiorky]
3.6.5 (2012-07-04)
------------------
- Fix missing directory in 3.6.4 release
[encolpe]
3.6.4 (2012-07-03)
------------------
- Fix missing include for rst files in the manifest
[encolpe]
- Version the latest known working ckeditor commited in browser/ckeditor
[kiorky]
3.6.3 (2012-07-03)
------------------
- Don't show ckeditor if html is not in the allowable content types of the field.
This fixes integration with Products.Poi where the details field of a
PoiIssue allows only text/x-web-intelligent by default.
[vincentfretin]
- Fixed the finder to honor the "Allow folder creation" option.
[dokai]
- Added i18n support
[giacomos]
- Added Italian translation
[giacomos]
- Fix language configuration according to plone_portal_state.language()
[toutpt]
- Add French translation
[toutpt]
- Add z3c.autoinclude targeted to Plone
[toutpt]
3.6.2 (2011-12-12)
------------------
- Describe in README how to release to ensure ``ckeditor`` code is included in
the egg.
[gotcha]
3.6.2b2 (2011-12-12)
--------------------
- Nothing changed yet.
3.6.2b1 (2011-12-12)
--------------------
- use ckeditor 3.6.2
[spereverde]
- Add ``ajaxsave`` plugin to allow asynchronous save.
[gotcha]
- Use zest.releaser entry point to bundle ckeditor code.
[gotcha]
3.6.1 (2011-07-14)
------------------
- Nothing changed yet.
3.6.1rc (2011-07-14)
--------------------
- use ckeditor 3.6.1
[spereverde]
- some pep8 and pyflakes
[spereverde]
- added control panel setting for templates_replaceContent
[spereverde]
- add control panel setting for registration of custom templates
[gotcha]
- Plone4.1 support - fix IVocabularyFactory import
[msmith64]
3.4.1
-----
- use ckeditor 3.4.1
[macadames]
- fix an error in set_media_type
[macadames]
- fix an error in mediaupload session
[macadames]
3.4
---
- use ckeditor 3.4
3.3.1b
------
- use ckeditor 3.3.1
[macadames]
- icon for control panel is now in controlpanel.xml
[macadames]
- Make control panel (and tests) running without errors with last Plone4 version ...
The listTypesForInterface method was broken.
[macadames]
- Use the new mediaupload attribute in collective.plonefinder
(Force the selection of content-type in jquery.uploadify)
[macadames]
- Added support for z3c.autoinclude so no zcml slugs will be needed for this package.
[sneridagh]
3.2.1b
------
- image sizes selection added (use this new option provided by collective.plonefinder)
- some fixes for last collective.plonefinder usage.
3.2.1a
------
- use ckeditor 3.2.1
- plone 4 compliance :
- remove iw.resourcetraverser dependency
- remove wysiwyg_support in skin (no more useful)
- control panel improvements
- functional doctests added or improved
- FAQ added
- buildout examples added to help developers using svn product
- javascript contextuel config is now packed
- added local field widget settings overload
- changed portal_transforms resolveuid
- all basehref problems fixed
- menu styles through control panel finished
- toolbar through control panel finished
3.0.2
-----
- use ckeditor 3.0.2
3.0
---
- Initial release
CKEditor for Plone : FAQ
------------------------
How to completely remove any trace of ckeditor in Plone ?
Use the Plone control panel > Addons > remove the product
In ZMI > portal_properties remove 'ckeditor_properties', all your registered
parameters for ckeditor will be destroyed.
How to install a new version of CKeditor for Plone ?
Always read this FAQ
From one version to another, it could be needed to run a migration
Generic Setup upgrade step for ckeditor_properties sheet.
How to use a svn version of collective.ckeditor ?
Just take a look at buildout/buildout.cfg and buildout/sources.cfg in this package.
Checkout the standard plone4 buildout.
Make a diff with standard plone4 buidout to see the parts you need to change.
You need to add the svn adresses in sources.cfg for mr.developper, 'ckeditor'
in egg and zcml sections, and the 'ckeditor' part ....
How to completly overload the ckeditor configuration with your own javascript config ?
Just create a javascript file called 'ckeditor_plone_config.js' in your ZMI
> portal_skins > Custom or in a skin product.
Raw data
{
"_id": null,
"home_page": "https://github.com/collective/collective.ckeditor",
"name": "collective.ckeditor",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "Plone CKeditor WYSIWYG",
"author": "Alterway Solutions",
"author_email": "toutpt@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/79/a8/25819e7f78d1ae3e64fe25592c1fce7edb9fd3ffba29a0f0d90c731a986e/collective.ckeditor-4.10.1.tar.gz",
"platform": "",
"description": ".. image:: https://travis-ci.org/collective/collective.ckeditor.svg\n :target: https://travis-ci.org/collective/collective.ckeditor\n.. image:: https://coveralls.io/repos/collective/collective.ckeditor/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/collective/collective.ckeditor?branch=master\n\n\nIntroduction\n============\n\nThis addon is a ckeditor_ integration for Plone. This release includes ckeditor_ version 4.12.1.\n\n.. contents::\n\nHow to install\n==============\n\nYou can install it as any Plone addon. Please follow official documentation_.\n\nThe code source can be found at\nhttps://github.com/collective/collective.ckeditor\n\nPlease report issues at\nhttps://github.com/collective/collective.ckeditor/issues\n\nDependencies\n------------\n\n* Plone >= 4\n* collective.plonefinder_\n\n\nTranslations\n============\n\nThis product has been translated into\n\n\n- Spanish.\n\n- French.\n\n- Italian.\n\nYou can contribute for any message missing or other new languages, join us at `Plone Collective Team <https://www.transifex.com/plone/plone-collective/>`_ into *Transifex.net* service with all world Plone translators community.\n\n\nUpgrades\n========\n\nGo to ZMI-->portal_setup-->Upgrades, choose \"collective.ckeditor:default\"\nprofile and execute the upgrade steps.\n\n4.3.0\n-----\n\nRelease 4.3.0 comes with the **Enhanced Image** plugin (`image2`). It is not\nenabled by default as it removes some of the advanced functionality provided by\nthe default image plugin (`image`). However, the **Enhanced Image** plugin\nprovides the ability to add a caption together with the image. It is also much\nmore user-friendly.\n\nTo enable the plugin, you need to setup `ckeditor_properties` through generic\nsetup `propertiestool.xml`::\n\n <?xml version=\"1.0\"?>\n <object name=\"portal_properties\" meta_type=\"Plone Properties Tool\">\n <object name=\"ckeditor_properties\" meta_type=\"Plone Property Sheet\">\n <property name=\"removePlugins\" type=\"lines\">\n <element value=\"image\"/>\n </property>\n <property name=\"plugins\" type=\"lines\">\n <element value=\"ajaxsave;/++resource++cke_ajaxsave/plugin.js\"/>\n <element value=\"image2;/++resource++ckeditor/plugins/image2/plugin.js\"/>\n </property>\n </object>\n </object>\n\nThis disables the `image` (default) plugin and enables the `image2` plugin.\n\nThe `image2` plugin comes with two specific settings (configurable only through\ngeneric setup)::\n\n <?xml version=\"1.0\"?>\n <object name=\"portal_properties\" meta_type=\"Plone Properties Tool\">\n <object name=\"ckeditor_properties\" meta_type=\"Plone Property Sheet\">\n <property name=\"image2_captionedClass\" type=\"string\">image</property>\n <property name=\"image2_alignClasses\" type=\"lines\">\n <element value=\"image-left\"/>\n <element value=\"image-dummy\"/>\n <element value=\"image-right\"/>\n </property>\n </object>\n </object>\n\nThe settings are `image2_captionedClass` and `image2_alignClasses`.\nThe values above are the default values.\n\nIf you enable the plugin, you also need to setup Plone to accept \nthe `figcaption` tag.\n\nThis is done by configuring HTML filtering with a setup handler like::\n\n def enable_figcaption(p):\n \"\"\" Allow figcaption as valid tag in portal_transforms safe_html\"\"\"\n\n from Products.PortalTransforms.Transform import make_config_persistent\n\n pt = getToolByName(p, 'portal_transforms')\n tid = 'safe_html'\n if not tid in pt.objectIds():\n return\n trans = pt[tid]\n tconfig = trans._config\n\n validtags = tconfig['valid_tags']\n validtags.update({'figcaption': 1})\n\n make_config_persistent(tconfig)\n trans._p_changed = True\n trans.reload()\n log.info('added figcaption as valid tag')\n\nCKEditor plugins\n================\n\n`balloontoolbar` plugin\n-----------------------\nprovided since version 4.8.0\n\nNot enabled by default, this plugin provides an API to setup context sensitive toolbars.\n\nTo enable the plugin, add ``balloontoolbar;/++resource++ckeditor/plugins/balloontoolbar/plugin.js``\nto the `Plugins` field in CKEditor control panel (``@@ckeditor-controlpanel``).\n\n`uploadimage` plugin\n--------------------\nprovided since version 4.7.0\n\nEnabled by default, this plugin manages support for uploading images that were dropped or pasted into the editor.\n\n`nonbreaking` plugin\n--------------------\nprovided since version 4.4.5.\n\nWhen enabled, the plugin provides keyboard shortcuts to insert non breaking chars:\n\n- ``Ctrl-Alt-Space`` for non breaking space,\n- ``Ctrl-Alt-Hyphen`` for non breaking hyphen.\n\nCorresponding buttons can also be configured in the toolbar:\n\n- ``NbSpace``\n- ``NbHyphen``\n\nTo enable the plugin, add ``nonbreaking;/++resource++cke_nonbreaking/plugin.js``\nto the `Plugins` field in CKEditor control panel (``@@ckeditor-controlpanel``).\n\nOr setup `ckeditor_properties` through generic setup `propertiestool.xml`::\n\n <?xml version=\"1.0\"?>\n <object name=\"portal_properties\" meta_type=\"Plone Properties Tool\">\n <object name=\"ckeditor_properties\" meta_type=\"Plone Property Sheet\">\n <property name=\"plugins\" type=\"lines\">\n <element value=\"ajaxsave;/++resource++cke_ajaxsave/plugin.js\"/>\n <element value=\"nonbreaking;/++resource++cke_nonbreaking/plugin.js\"/>\n </property>\n </object>\n </object>\n\n`tableresize` plugin\n--------------------\n\nWhen enabled, the plugin makes it easy to change the table columns width by\ndrag/dropping it from left to right and right to left.\n\nTo enable the plugin, add ``tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js``\nto the `Plugins` field in CKEditor control panel (``@@ckeditor-controlpanel``).\n\nOr setup `ckeditor_properties` through generic setup `propertiestool.xml`::\n\n <?xml version=\"1.0\"?>\n <object name=\"portal_properties\" meta_type=\"Plone Properties Tool\">\n <object name=\"ckeditor_properties\" meta_type=\"Plone Property Sheet\">\n <property name=\"plugins\" type=\"lines\" purge=\"False\">\n <element value=\"tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js\"/>\n </property>\n </object>\n </object>\n\nDevelopment\n===========\n\n.. attention:: \n ConfigurationError \n\n If you try to run a Zope/Plone instance with a collective.ckeditor\n checkout, your instance will break with a ``ConfigurationError``::\n\n Directory .../browser/ckeditor does not exist.\n\nAfter checking out collective.ckeditor sources, run the included buildout.\n\nThis installs and runs the ``copy_ckeditor_code`` script. It takes care of\ncopying ckeditor code in the appropriate ``browser/ckeditor`` directory.\n\nThe ``browser/ckeditor`` directory makes ckeditor javascript code available to\nthe browser at::\n\n http://yourplonesite/++resource++ckeditor/\n\nHow to Release\n--------------\n\nObviously, the ckeditor code also needs to be included in the released eggs.\n\n``collective.ckeditor`` registers an entry point for ``zest.releaser`` that (if\ncalled properly) takes care of copying the code when preparing the release.\n\nHowever, in order to take advantage of the entry point, you have to use the\n``bin/fullrelease`` locally installed by the development buildout instead of\na globally installed ``fullrelease``.\n\nOnly the local ``bin/fullrelease`` script can see the entry_point registered by\n``collective.ckeditor``.\n\nHow to update to a newer version of CKEditor\n--------------------------------------------\n\nValid for CKEditor 4\n\n1. Go to ``dev/build-ckeditor``\n2. Update plugin versions computation in ``image2.sh``, ``moono.sh``,\n ``scayt`` and ``wsc`` in ``scayt.sh``\n3. Issue the following command ``CKEDITOR_VERSION=4.x.x make``\n4. Run ``bin/copy_ckeditor_code``\n5. Test\n6. Add untracked files ``git add ../../src/collective/ckeditor/_src/ckeditor/``\n7. Commit\n\nIf you need unminified JS to debug the release,\nstep 3 can be replaced with::\n\n MINIFIED_JS=--leave-js-unminified CKEDITOR_VERSION=4.x.x make\n\nTests status\n------------\n\n\nThis add-on is tested using Travis CI. The current status of the add-on is:\n\n.. image:: https://img.shields.io/travis/collective/collective.ckeditor/master.svg\n :target: http://travis-ci.org/collective/collective.ckeditor\n\n.. image:: https://img.shields.io/coveralls/collective/collective.ckeditor/master.svg\n :target: https://coveralls.io/r/collective/collective.ckeditor\n\n.. image:: http://img.shields.io/pypi/v/collective.ckeditor.svg\n :target: https://pypi.python.org/pypi/collective.ckeditor\n\n\nCredits\n=======\n\nCompanies\n---------\n\n* `Makina Corpus <http://www.makina-corpus.com>`_\n* `Ecreall <http://www.ecreall.com>`_\n* `BubbleNet <http://bubblenet.be>`_\n* `Hexagonit <http://www.hexagonit.fi>`_\n\nContributors\n------------\n\n- Kai Lautaportti <kai.lautaportti@hexagonit.fi>\n- Giacomo Spettoli <giacomo.spettoli@gmail.com>\n- Godefroid Chapelle <gotcha@bubblenet.be>\n- Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>\n- Jean-Mat Grimaldi <jeanmat.grimaldi@gmail.com>\n- Michael Smith <msmith64@naz.edu>\n- Victor Fernandez de Alba <sneridagh@gmail.com>\n- Kim Paulissen <spereverde@gmail.com>\n- Jean-Michel FRANCOIS aka toutpt <toutpt@gmail.com>\n- Gauthier Bastien <gauthier@imio.be>\n- Leonardo J. Caballero G. <leonardocaballero@gmail.com>\n\n.. _documentation: http://plone.org/documentation/kb/installing-add-ons-quick-how-to\n.. _FCKEditor: http://plone.org/fckeditor\n.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif\n.. _makinacom: http://www.makina-corpus.com\n.. _ckeditor: http://ckeditor.com/\n.. _collective.plonefinder: http://plone.org/products/collective.plonefinder\n\nChangelog\n=========\n\n4.10.1 (2021-10-01)\n-------------------\n\n- Fix CKEditor not packaged properly in 4.10.0 release.\n [aduchene]\n\n- Use zest.releaser = 6.22.1.\n [aduchene]\n\n\n4.10.0 (2021-06-11)\n-------------------\n\n- Add disallowedContent option to blacklist content.\n [naro, gotcha]\n\n\n4.9.1 (2021-02-12)\n------------------\n\n- Add Transifex.net service integration to manage the translation process.\n [macagua]\n\n- Add Spanish translation\n [macagua]\n\n- AjaxSave plugin, add message when nothing saved because nothing changed\n (Content already saved (nothing changed).)\n [gbastien]\n\n- AjaxSave plugin, added `async:true` attribute so it is possible to set it\n to `async:false` and make sure content is saved before continuing.\n [gotcha, gbastien]\n\n\n4.9.0 (2019-09-12)\n------------------\n\n- Update to CKEditor 4.12.1\n [gotcha]\n\n\n4.8.3 (2018-11-13)\n------------------\n\n- AjaxSave plugin, defend against not traversable objects like plone.registry\n records\n [gotcha]\n\n\n4.8.2 (2018-10-12)\n------------------\n\n- refactor AjaxSave plugin\n\n - fix for Archetypes\n - support for plone.app.contenttypes\n - support for formlib portlets\n\n [gotcha]\n\n\n4.8.1 (2018-07-10)\n------------------\n\n- CKEditor language is coherent with edit view language\n [gotcha]\n \n\n\n4.8.0 (2018-06-22)\n------------------\n\n- Update to CKEditor 4.9.2\n Include not enabled balloontoolbar plugin\n [gotcha]\n\n\n4.7.2 (2017-12-15)\n------------------\n\n- Make `uploadimage` `resolveuid` links relative.\n [gotcha]\n\n\n4.7.1 (2017-12-08)\n------------------\n\n- `uploadimage` support uses `resolveuid`.\n [gotcha]\n\n\n4.7.0 (2017-12-01)\n------------------\n\n- Enable `uploadwidget` and `uploadimage` plugins.\n Corresponding upgrade step\n (Now depends on `plone.api`)\n [gotcha]\n\n\n4.6.0 (2017-08-18)\n------------------\n\n- Update to CKEditor 4.7.2\n [gotcha]\n\n\n4.5.0 (2017-02-24)\n------------------\n\n- Add a setting for CKEditor skin: colored or flat buttons\n\n Default skin remains Moonocolor, colored buttons.\n Flat buttons comes from the new Moono-lisa skin (see http://ckeditor.com/addon/moono-lisa)\n [gotcha]\n\n To avoid ugly border-bottom on buttons in default Plone 4 skin: add the\n following style to your CSS::\n\n #content a.cke_button {\n border-bottom: 0;\n }\n\n #content a.cke_button:hover {\n border-bottom: #ccc 0.1em solid;\n }\n\n- Update to CKEditor 4.6.2\n [gotcha]\n\n\n4.4.5 (2016-11-23)\n------------------\n\n- ``nonbreaking`` plugin: used to insert non breaking spaces and hyphens.\n [gotcha]\n\n\n4.4.4 (2016-05-02)\n------------------\n\n- Fix overloading settings: it should be empty dict rather than None\n [gotcha]\n\n\n4.4.3 (2016-05-02)\n------------------\n\n- Enable settings overloading for formlib wysiwyg widget\n [gotcha]\n\n\n4.4.2 (2016-04-13)\n------------------\n\n- Fix customization per widget of filexxxBrowserUrl, depending on language\n [gotcha]\n\n\n4.4.1 (2016-04-13)\n------------------\n\n- Enable settings overloading for plone.app.z3cform wysiwyg widget\n [gotcha]\n\n- Enable customization per widget of filexxxBrowserUrl, depending on language\n [gotcha]\n\n4.4.0 (2016-03-11)\n------------------\n\n- Store custom toolbars in registry.\n (With previous change, enable different toolbars per widget)\n [gotcha]\n\n- Improve settings overloading per widget\n [gotcha]\n\n- Load js only if you are an authenticated user.\n [bsuttor]\n\n\n4.3.5 (2016-02-16)\n------------------\n\n- Fix image preview in ckeditor when clicking on main image in pop-pup window.\n [boulch]\n \n4.3.4 (2016-01-21)\n------------------\n\n- Fix context of ckeditor_plone_config.js\n when called by plone.app.form.widgets.wysiwygwidget\n when adding a portlet.\n [gotcha]\n\n\n4.3.3 (2016-01-20)\n------------------\n\n- Fix context of ckeditor_plone_config.js\n when called by plone.app.form.widgets.wysiwygwidget\n when editing a portlet.\n [gotcha]\n\n\n4.3.2 (2016-01-08)\n------------------\n\n- Fix default value of image2_alignClasses (plus upgrade step)\n [gotcha]\n\n- Add option to not minify JS to build-ckeditor scripts\n [gotcha]\n\n- Fix build-ckeditor scripts to keep option to not use \n image2 plugin\n [gotcha]\n\n- Update ckeditor accordingly\n [gotcha]\n\n- Check validity of image2_alignClasses\n [gotcha]\n\n\n4.3.1.1 (2015-01-05)\n--------------------\n\n- Re-publish egg with generated static resources\n [ebrehault]\n\n\n4.3.1 (2015-12-14)\n------------------\n\n- Update to CKeditor 4.5.6\n [gotcha]\n\n- Add some robot tests\n [spreverde, gotcha]\n\n- Add defaultTableWidth option to control panel to set the default table width in the table dialog window.\n\n\n4.3.0b2 (2014-06-19)\n--------------------\n\n- Fix javascript order though GS.\n [montypie]\n\n\n4.3.0b1 (2014-06-19)\n--------------------\n\n- Add image2 plugin and its dependencies.\n [gotcha]\n\n- Add image2_alignClasses and image2_captionedClass setting to setup\n image2 plugin.\n [gotcha]\n\n- Updated to CKeditor 4.4.1.\n [gotcha]\n\n- Add removePlugins option to control panel to allow to deactivate plugins.\n [gotcha]\n\n4.2.0 (2014-06-05)\n------------------\n\n- Show actual url in link dialog besides resolveuid.\n [gotcha]\n\n\n4.1.1 (2014-03-27)\n------------------\n\n- Fix upgrade steps to avoid overwriting custom configuration.\n [gotcha]\n\n- Updated to CKeditor 4.3.4\n [gotcha]\n\n\n4.1 (2014-03-27)\n----------------\n\n- Expand setup of Advanced Content filter (ACF).\n [spereverde, gotcha]\n\n\n4.0.0 (2014-02-05)\n------------------\n\n- Updated to CKeditor 4.3.2\n [gotcha]\n\n- Add extraAllowedContent option to setup filter rules.\n [gotcha]\n\n- Backward compatibility of toolbar settings\n [gotcha]\n\n- Moved to CKeditor 4.2.3\n [gbastien]\n\n\n3.6.12 (2013-09-05)\n-------------------\n\n- Make it possible to enable/disable SCAYT by default\n [gbastien]\n\n3.6.11 (2013-05-30)\n-------------------\n\n- Stay compatible with IE<9, do not use indexOf in JS\n [gbastien]\n\n3.6.10 (2013-05-30)\n-------------------\n\n- Updated ckeditor to 3.6.6.1\n [vincentfretin]\n\n- travis setup / buildout infra\n [kiorky]\n\n3.6.9 (2013-05-29)\n------------------\n\n- Works under Plone 4.3.\n [thomasdesvenain]\n\n\n3.6.8 (2012-12-13)\n------------------\n\n- Update install and uninstall to change the default_editor site\n property instead of the wysiwyg_editor memberdata property.\n [maurits]\n\n- Also check the default_editor site property when determining whether\n the member wants to use CKeditor.\n [maurits]\n\n- Changed the way external plugins are registered. It's better to use the three\n parameter variant of ``CKEDITOR.plugins.addExternal`` because this will make\n the base URL for the plugin resources available within the plugin code as\n ``this.path`` correctly. Otherwise ``this.path`` contains the full URL to the\n plugin script itself which consequently breaks loading of related resources\n (images, translations, etc).\n [dokai]\n\n- Refactored the ``ck_ruid_to_url`` transform to use plone.app.uuid to transform\n UIDs to URLs. This avoids using reference_catalog in favor of portal_catalog\n and appears to fix issues with Dexterity types not available through the\n reference_catalog.\n [dokai]\n\n- Limited string length to be searched under 3000 characters by re.search method.\n [taito]\n\n3.6.7 (2012-08-20)\n------------------\n\n- take care of external stylesheets registered with an absolute URL.\n [gotcha]\n\n- fix plugins (add migration)\n [kiorky]\n\n- refresh translations\n [kiorky]\n\n- translate styles menu\n [kiorky]\n\n3.6.6 (2012-07-05)\n------------------\n\n- Fix default value for images\n [kai.hoppert@tomcom.de]\n\n- Add a duplicate directory for ckeditor sources: it needs a more ambitious\n patch but fix a development installation\n [kiorky]\n\n3.6.5 (2012-07-04)\n------------------\n\n- Fix missing directory in 3.6.4 release\n [encolpe]\n\n3.6.4 (2012-07-03)\n------------------\n\n- Fix missing include for rst files in the manifest\n [encolpe]\n\n- Version the latest known working ckeditor commited in browser/ckeditor\n [kiorky]\n\n3.6.3 (2012-07-03)\n------------------\n\n- Don't show ckeditor if html is not in the allowable content types of the field.\n This fixes integration with Products.Poi where the details field of a\n PoiIssue allows only text/x-web-intelligent by default.\n [vincentfretin]\n\n- Fixed the finder to honor the \"Allow folder creation\" option.\n [dokai]\n\n- Added i18n support\n [giacomos]\n\n- Added Italian translation\n [giacomos]\n\n- Fix language configuration according to plone_portal_state.language()\n [toutpt]\n\n- Add French translation\n [toutpt]\n\n- Add z3c.autoinclude targeted to Plone\n [toutpt]\n\n3.6.2 (2011-12-12)\n------------------\n\n- Describe in README how to release to ensure ``ckeditor`` code is included in\n the egg.\n [gotcha]\n\n\n3.6.2b2 (2011-12-12)\n--------------------\n\n- Nothing changed yet.\n\n\n3.6.2b1 (2011-12-12)\n--------------------\n\n- use ckeditor 3.6.2\n [spereverde]\n\n- Add ``ajaxsave`` plugin to allow asynchronous save.\n [gotcha]\n\n- Use zest.releaser entry point to bundle ckeditor code.\n [gotcha]\n\n3.6.1 (2011-07-14)\n------------------\n\n- Nothing changed yet.\n\n\n3.6.1rc (2011-07-14)\n--------------------\n\n- use ckeditor 3.6.1\n [spereverde]\n\n- some pep8 and pyflakes\n [spereverde]\n\n- added control panel setting for templates_replaceContent\n [spereverde]\n\n- add control panel setting for registration of custom templates\n [gotcha]\n\n- Plone4.1 support - fix IVocabularyFactory import\n [msmith64]\n\n\n3.4.1\n-----\n\n- use ckeditor 3.4.1\n [macadames]\n\n- fix an error in set_media_type\n [macadames]\n\n- fix an error in mediaupload session\n [macadames]\n\n\n3.4\n---\n\n- use ckeditor 3.4\n\n3.3.1b\n------\n\n- use ckeditor 3.3.1\n [macadames]\n\n- icon for control panel is now in controlpanel.xml\n [macadames]\n\n- Make control panel (and tests) running without errors with last Plone4 version ...\n The listTypesForInterface method was broken.\n [macadames]\n\n- Use the new mediaupload attribute in collective.plonefinder\n (Force the selection of content-type in jquery.uploadify)\n [macadames]\n\n- Added support for z3c.autoinclude so no zcml slugs will be needed for this package.\n [sneridagh]\n\n3.2.1b\n------\n\n- image sizes selection added (use this new option provided by collective.plonefinder)\n\n- some fixes for last collective.plonefinder usage.\n\n3.2.1a\n------\n\n- use ckeditor 3.2.1\n\n- plone 4 compliance :\n\n - remove iw.resourcetraverser dependency\n\n - remove wysiwyg_support in skin (no more useful)\n\n- control panel improvements\n\n- functional doctests added or improved\n\n- FAQ added\n\n- buildout examples added to help developers using svn product\n\n- javascript contextuel config is now packed\n\n- added local field widget settings overload\n\n- changed portal_transforms resolveuid\n\n- all basehref problems fixed\n\n- menu styles through control panel finished\n\n- toolbar through control panel finished\n\n3.0.2\n-----\n\n- use ckeditor 3.0.2\n\n\n3.0\n---\n\n- Initial release\n\nCKEditor for Plone : FAQ\n------------------------\n\nHow to completely remove any trace of ckeditor in Plone ?\n Use the Plone control panel > Addons > remove the product\n In ZMI > portal_properties remove 'ckeditor_properties', all your registered \n parameters for ckeditor will be destroyed.\n\nHow to install a new version of CKeditor for Plone ?\n Always read this FAQ\n From one version to another, it could be needed to run a migration \n Generic Setup upgrade step for ckeditor_properties sheet.\n\nHow to use a svn version of collective.ckeditor ?\n Just take a look at buildout/buildout.cfg and buildout/sources.cfg in this package.\n Checkout the standard plone4 buildout.\n Make a diff with standard plone4 buidout to see the parts you need to change.\n You need to add the svn adresses in sources.cfg for mr.developper, 'ckeditor'\n in egg and zcml sections, and the 'ckeditor' part ....\n\nHow to completly overload the ckeditor configuration with your own javascript config ?\n Just create a javascript file called 'ckeditor_plone_config.js' in your ZMI\n > portal_skins > Custom or in a skin product.",
"bugtrack_url": null,
"license": "GPL",
"summary": "CKEditor for Plone",
"version": "4.10.1",
"project_urls": {
"Homepage": "https://github.com/collective/collective.ckeditor"
},
"split_keywords": [
"plone",
"ckeditor",
"wysiwyg"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "79a825819e7f78d1ae3e64fe25592c1fce7edb9fd3ffba29a0f0d90c731a986e",
"md5": "cdd1d607661352e2b5f493718beeda6b",
"sha256": "c00a5fd4cb1d4d3029aba07f49ab0f3eef317b650706290e6e62ce037c168dc0"
},
"downloads": -1,
"filename": "collective.ckeditor-4.10.1.tar.gz",
"has_sig": false,
"md5_digest": "cdd1d607661352e2b5f493718beeda6b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3699317,
"upload_time": "2021-10-01T08:52:55",
"upload_time_iso_8601": "2021-10-01T08:52:55.041822Z",
"url": "https://files.pythonhosted.org/packages/79/a8/25819e7f78d1ae3e64fe25592c1fce7edb9fd3ffba29a0f0d90c731a986e/collective.ckeditor-4.10.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-10-01 08:52:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "collective",
"github_project": "collective.ckeditor",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "collective.ckeditor"
}