skip to navigation
skip to content

Products.kupu 1.4.16

Kupu wysiwyg editor for Plone

Latest Version: 1.5.2


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.4.16

- Kupu didn't not transform resolveuid to friendly url in area tags
(Plone ticket 9402).

- Updated getWysiwygmacros to respect Plone 4's default_editor property.

- Remove Kupu from the available editors list on uninstall.

- Add Kupu to the available editors list when installed via the
GenericSetup profile.

- Converted GenericSetup import and export step registrations to ZCML.

- Added icon_expr to the Plone configlet action registration, for
forward-compatibility with Plone 4.

- 1.4.15

- Don't assume there is only one kupu widget on the page. Made each config
node unique. (DannyB)

- 1.4.14

- Fix kupu_xmlconfig to not assume all needed variables are already
in scope. This fixes

- Do not assume that kupu is always used in Plone. This fixes

- Removed bogus `global_defines` call from, which was
both expensive and failed for certain kind of non-content contexts.

- Fixed kupuconfig quoting to work with kss (Plone ticket 9240).

- 1.4.13

- Patch from Andy Altepeter: kupu updatestate patch

- Patch from Gerhard Weis: small js-bugfix in kupudrawers.js

- Wrap the inline xml configuration with javascript document.write
in the plone integration, so edit pages are valid (x)html.

- Changed undefined variable ${portal_url} to ${context/portal_url} in
page templates.

- Declare package dependencies and fixed deprecation warnings for use of

- Remove conditional comments when editing in IE (otherwise IE converts
them to visible text)

- Added a `kupu_enabled` browser view, which can be used instead of the
isKupuEnabled method of the plonelibrarytool.

- Changed the default titlelength for cropping titles in the link drawer to
255 instead of 60.

- Correct dependency for the Plone egg.

- Plone tickets

* 8612 strangely numbered column headings (Col 01 | Col 11 | Col 21 | Col 31
* 9190 Please make new release for Kupu to apply updated translation

- 1.4.12

- Plone tickets

* 8280 HTML source preview bug with Kupu 1.4.10 and Firefox 3
* 8287 html2caption is vulnerable to being fooled by acquisitions
* 8546 kupu AttributeError captioning

- 1.4.11

- French translations broke drawers

- Added full undo/redo support using 'diff_match_patch.js'.

- Plone tickets

* 8327 Kupu CSS inserted below ploneCustom.css in the CSS registry

- 1.4.10

- Update to include a hint for deliverance that edited
pages should not be themed. [wiggy]

- Purged old Zope2 Interface interfaces for compatibility with Zope 2.12 and
Plone 4, while maintaining compatibility
with pre Plone 4 versions of Products.PortalTransforms.

- Plone tickets

* 7779 imageuploader doesn t show the input for file if not in english
* 7958 Kupu: Insert image: KeyError: 'info' (Error 503 loading
* 7990 Internal link drawer broken for editors
* 8003 Fixed Kupu translation msgids containing html.
* 8009 Pasting from OpenOffice broken / mishandled comments
* 8014 kupu zmi_docs#images link broken
* 8039 Kupu locks up on adding images when user does not have manager privileges
* 8080 After uploading image, the "Insert Image" dialog remains open
* 8129 "TypeError: string indices must be integers" error on
when installing

- 1.4.9

- Manage anchors didn't add an anchor correctly if there was an
anchor used for a link inside the element.

- timte fixed a possible unicode decode error

- Image upload now has same style options as image insertion.

- Plone tickets

* 6915 Kupu can't find anchors inside table cells
* 7409 "edit without kupu" does not appear on edit form (the fix for this
make the link appear but only in source mode).
* 7804 KupuLibraryTool spellcheck method is missing a docstring
* 7893 Workaround for bad KSS form submissions
* 7916 Kupu breaks strong/em tags with class names, on firefox
* 7939 Kupu breaks on Firefox 3.0b4 in OSX

- 1.4.8

- Tabbing key now takes you to next/previous field. However, plone
ticket #7727 might result in tab behaviour changing again.

- Plone tickets

* 7473 Kupu full screen mode looks broken
* 7494 Insert internal link using IE links in the wrong place
* 7680 Kupu stripping out anchor to top of current page
* 7713 Kupu browser "Home" link goes to Plone root and not content
* 7728 turning on "Link using UIDs" breaks indexing of rich text
fields that contain unicode characters out of the 128 range

- 1.4.7

- Added metadata.xml file to the Plone GenericSetup profile.

- Style whitelist and class blacklist now work when there is only
one entry in the list.

- Span tags with no attributes after filtering are removed.

- 1.4.6

- Fixed ReftextField error introduced in 1.4.5

- 1.4.5

- Fixed unit tests for the transform (they now use a real image instead of a

- Fixed the transform to preserve links around images.

- Images may only be resized if 'height' and 'width' are permitted
image attributes. Resizing images in Firefox sets those
attributes rather than the style attribute.

- Plone tickets

* 5765 Kupu in IE unable to make a link from selected image
* 6430 Kupu: changes to images resized by handle-dragging are
lost (not saved)
* 6835 Drag image breaks in Kupu
* 7293 kupu import step has the wrong dependencies in a portal
setup export
* 7377 Making an Image a Link within Kupu renders the link tag at
the top of the content page
* 7387 Kupu-Commit Selected Changes button missing when
converting UID=>Relative Link
* 7426 Kupu 1.4.4 installed with Plone 3.0.3 for PowerPC presents
itself in Safari 3.0.4, but content in Kupu window can't be edited
* 7428 Searching for non-ascii character in kupu Insert Link
dialog causes Error 500
* 7419 Plone and/or Kupu should at least WARN an editor of an
image that changes may be lost at Save time

- 1.4.4

- Enabled Safari support (needs webkit nightly build and Safari 3)

- Plone tickets

* 7099 Kupu error on multi-schemata archetypes content
* 7258 Missing translation msgids for kupu
* 7224 Kupu: error in iframe tabindex attribute
* 7229 kupu 1.4.3 css correction to display redo button icon in editing
* 7285 Kupu Accesskey for Save conflict with Firefox History Menu
* 7305 Page creation and kupu upload image returns an error if Kupu link
uid's is turned on.
* 7315 Kupu table of contents generator doesn't allow multiple paragraph
styles to be selected in IE7

- 1.4.3

- Kupu now uses sarissa (still a differences in
sarissa_ieemu_xpath.js, but these are purely cosmetic so that jslint
runs cleanly).

- Plone tickets

* 6970: can't upgrade to Kupu 1.4.1
* 6975: Cannot save HTML field as NULL
* 7119: 'Edit without visual editor' link doesn't show up in Plone 2.5.3
* 7139: Kupu Manage Anchors not working in inline edit
* 7140: kupu fails with danish letters in title.
* 7143: UnicodeError inserting image
* 7158: Kupu Edit already inserted image: Preview and sizes get wrong urls

- 1.4.2

- Florian fixed some encoding errors

- Plone tickets

* 7074: Search for image errors in Kupu

- 1.4.1

Limi asked for some last minute changes for Plone 3:

- Embed doesn't work out of the box in Plone 3, so shouldn't be shown
by default (it will only lead to a lot of user frustration).

- The anchor/table of contents generation is done differently in Plone
3, so should be off by default (turning on buttons is easy in Kupu

- Insert image/link should default to current folder instead of
Recent, since the Upload button isn't visible if not (which is the
most common use case)

- Place the delete link/image button after the pulldown (so it doesn't
push around the toolbar elements)

- Default table styles now include "grid listing" and "invisible".

- Paragraph styles now labelled just styles and include: highlight, page
break, clear floats

- Create headings now on by default.

- 1.4

- The icons in the toolbar for Plone now use CSS sprites. This means that
instead of having 30 files each being 16x16, we put all the icons
in one file, and reference the file once. Then we use CSS positioning to
pull out the right icon.This has a major impact on how quickly Kupu
performs its initial load ??? as HTTP roundtripping is very time-consuming.
Before, Kupu did 17 HTTP requests for its initial image loading, now it
only does one.

- Fixed a KeyError exception when importing a GenericSetup profile.

- Minor styling changes to the image upload form.

- Plone tickets

* 6486: formUnload protection invoked for inline kupu editor even after Save

* 6833: Error 500 loading kupu_migration.xml

- 1.4rc2

- Fixed broken code for determining the width of captioned images.
Also removed the hardwired html for the transform and use a
template instead (so it can be customised).

- Default image size is now configurable

- Plone tickets

* 6756: Kupu Pull-quote style not working in IE

* 6739 Hide the "edit without visual editor" link when there is only one
format available

* 6535: Can't upload image via visual editor in inline edit

* 6801 'contentUsesKupu' shouldn't expect string type

* 6759: Kupu caption CSS needs some love.

- 1.4rc1

- Added a 'manage anchors' tab to the anchor drawer

- Big cleanup of i18n attributes

- Updated the Japanese translation files, thx to Tyam.

- Added in some support for inserting Flash content.

- Media objects may now have a list of classes (specific to the portal type).

- Image drawer layout has been tidied up.

- Anchors in the link drawer now have a slightly cleaner ui.

- Drawer actions which do server requests now display a wait cursor.

- Removed the tabindex from all the toolbar buttons and added it to
the iframe: this means you can tab into kupu from above without
dying of old age as you try to get past the toolbar. Added a
handler for the tab key so that pressing tab will take you to the
next tabstop in the form.

- Only single trailing
tags are stripped from p and div tags: multiple

tags are left unchanged (so those people who insist on using
the to generate whitespace still can).

- Plone tickets:

* 5622 Add a class (even if empty) to internal LinkDrawer

* 6283 Do not allow bigger images than Preview by default from Kupu

* 6440 Browser error: exception element has no properties while
registering an event handler for element null, event click, method
function ()

* 6720 i18n error in kupu collection

* 5985 Kupu should not strip the dir attribute by default.

* 5985 Range.intersectsNode declared obsolete

* 5189 patch to support embed tag

* 5420 "Edit with kupu" broken for fields on custom fieldset

* 6056 Extra line breaks added in pre tags

* 6103 resolveuid does not check input values and throws deep
"list index out of bound" error in

* 6536 Formatting of captioned images is messed up

* 6548 Links tab on kupu control panel gives traceback, cannot
find kupu_references

* 6598 Default linkables in Kupu: folder is not, plone site is not,
ATRelativePathCriterion is

* 4887 Fix for "editing defaults to kupu, even when javascript turned off"
reverted as it breaks inline editing.

- 1.4 Beta 6

- Removed the getToolByName deprecation workround since
getToolByName is now officially undeprecated again.

- Removed most of the illegally nested forms produced by the xsl.
I hope this will stop IE6 crashing. The image upload form is still
there as it is going to take more major surgery to get rid of that

- 1.4 Beta 5

- Adjusted some more Plone tests to work on Plone 3.0.

- Kupu is automatically suppressed when the content being edited
starts with an html comment (  
File Type Py Version Uploaded on Size (md5) Source 2009-11-19 1MB