Skip to main content

Turns the Plone 'Description' field into Richtext/HTML

Project description


Adds the new HTML-formatable textfield richdescription content types can use.

There are two behaviors provided:


The single richdescription field.


A drop-in replacement for plone.basic. This is what you usually want: Disable plone Basic and enable this.


A special replacement for plone.basic, but with an non-required title. To be used i.e. with file and image.

  • When the field is saved, the contents are also stored in the classic dublincore description field, but without html-formating.

  • A metadata index is provided, so that richdescription can be read directly from catalog brains.

  • A module global collective.richdescription.behavior.PATTERN_OPTIONS is used to configure the widget, It comes with a reduced set of features and can be patched if more are needed. There in no control panel yet (contributions are welcome).

There is no folder_listing or similar template yet. If you want to have HTML formated descriptions in folder_listing use something like this:

  tal:define="item_description item/richdescription|nothing;
              item_description python:item_description or item.Description;">
  <p class="akaDescription"
    tal:content="structure item_description">DESCRIPTION</p>


Although there are no big issues with this package, use it at your own risk! The description field wasn’t meant to hold HTML data. People may tend to write long essays in the description field, which is not what you want, probably. Some use cases require this functionality though, so have fun.


There should be no need for a specific migration step. When no richdescription field is available for a content type, it falls back to the normal description field. When saving a content type, the richdescription field is set and the catalog’s metadata richdescription column is filled.


Tested with Plone 6


Johannes Raggam <> Peter Holzer <> Jens Klein <>

Source Code and Contributions

If you want to help with the development (reporting, improvement, update, bug-fixing, …) of collective.richdescription this is a great idea!

Please file any issues or ideas for enhancement at the issue tracker.

The code is located in the github collective.

You can clone it or get access to the github-collective and work directly on the project.

Maintainer is Johannes Raggam and the BlueDynamics Alliance developer team. We appreciate any contribution and if a release is needed to be done on pypi, please just contact one of us dev@bluedynamics dot com


3.0.0 (2022-03-23)

  • Add collective.richdescription.title as a drop in replacement for plone.basic. Also add collective.richdescription.optionaltitle as a variant for file/image. [jensens]

  • Add patchable PATTERN_OPTIONS global to collective.richdescription.behavior in order to be able to set reduced options here (default). [jensens]

  • Python 3 compatibility - remove Archetypes support. [agitator]

2.0 (2014-11-11)

  • Cleaning up. [jensens]

  • Add Dexterity support. [thet]

  • Refactoring. [thet]

1.0.1 (2014-06-13)

  • Metadata update. [thet]

1.0 (2012-11-07)

  • Initial release [thet]


  • When no description is set, return a BaseUnit as fallback. Fixes AttributeError, where original_encoding was tried to accessed on a string value. [thet]

  • Register the skins folder for any theme. [thet]

  • Initial version on 2010-10-05 for

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.richdescription-3.0.0.tar.gz (21.1 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page