Author: Kupu Team



What is Kupu?

Kupu is a cross-browser WYWSIWYG editor. It allows the comfortable
editing of the body of an HTML document. It's client-side (browser)
requirements are one of:

  - Mozilla 1.3.1 or higher

  - Internet Explorer 5.5 or higher

  - Netscape Navigator 7.1 or higher
  - Opera 9 or higher

Server-side there are hardly any requirements, except for some way of
processing data (CGI or something more fancy like PHP, ASP or Python
scripts in Zope).

Kupu is particularly suited for content migration as well as editing.
Content copied from an existing web page is pasted with all formatting
intact. This includes structure such as headings and lists, plus links,
image references, text styling, and other aspects. Copying text from a
word processor with an HTML clipboard - such as MS Word - works exactly
the same.

Kupu will clean up the content before it is sent to the server, and can
send data to the server asynchronously using PUT (which allows the data 
to be saved without reloading the page) as well as in a form.

Kupu can be customized on many different levels, allowing a lot of changes
from CSS, but also providing a JavaScript extension API.

More documentation...

General information

  o Authors: see CREDITS.txt

  o License: see LICENSE.txt

  o Frequently asked questions: see FAQ.txt


  o general: see INSTALL.txt

  o Zope 2.x: see ZOPE2.txt

  o Plone 2.x: see PLONE2.txt


  o Customizing kupu: see CUSTOMIZING.txt

  o Extending kupu: see EXTENDING.txt

  o Java Script API: see JSAPI.txt

  o Old browser support: see OLDBROWSERS.txt

  o Templating system: see TEMPLATE-SYSTEM.txt

  o Library Feature Specification: see LIBRARIES.txt


Kupu has a homepage at

Reporting bugs

Please report bugs to the issue tracker available at: (mind the trailing slash).

Mailing list

There is a mailing lists for Kupu development:


Unless otherwise stated, kupu is released under the Kupu License. See
LICENSE.txt for the license text.

The Sarissa ECMAScript library shipped in this distribution
(common/sarissa.js) is the work of Manos Batsis and distributed under
the Kupu License with his kind permission. See the Sarissa homepage at for more information.

Kupu changes

- 1.5.2 (2013-08-14)

  - Make getWysiwygmacros unpublishable.

- 1.5.1 (2012-12-09)

  - Avoid possible DoS of spellchecker by prefixing each line with ^.
    This fixes

  - Compatibility fixes for IE9+.

    This fixes

  - Convert GenericSetup profile registration to ZCML, to add compatibility
    with GenericSetup version after 1.6.2 and also move an interface to the
    correct place.

  - Copy in minimalpath from CMFCore as it has been removed from CMFCore 2.3.

- 1.5.0

  - Fix warnings due to missing i18n domain in configure.zcml.

- 1.5.0b1 (2011-01-04)

  - Set Site Administrator role as default permission for Plone 4.1.

  - Depend on ``Products.CMFPlone`` instead of ``Plone``.

  - Use of the resolveuid Python script to resolve URLs in the form
    resolveuid/<UID> has been removed. These are now resolved by a browser view
    in plone.outputfilters.

  - Use of the kupu_captioned_image template to customize the caption added to
    images is deprecated. Use the similar template in plone.outputfilters

  - Use plone.uuid to look up content UUIDs, if available.

  - Use the resolveuid and captioning transform from plone.outputfilters
    instead of implementing our own.

  - Remove use of tabindex iterator, which is no longer available in Plone 4.
    This fixes