Skip to main content

Change, merge and delete keywords (subjects) in Plone.

Project description

Github Testing Badge Coveralls badge Code style: black

Plone Keyword Manager

Plone Keyword Manager allows you to change, merge and delete keywords (aka tags or subjects) in Plone and updates all corresponding objects automatically. It uses a similarity search to support you in identifying similar keywords. PloneKeywordManager helps you to build an inductive vocabulary with several people working on the same Plone site. Keywords can be cleaned up from time to time by a site-manager to create a consistent vocabulary.

Plone Keyword Manager is a quite simple solution to a major problem in the real world use of Plone: If you can’t work with restricted vocabularies, your keyword-vocabulary will get duplicate entries very quickly - depending on your authors’ interpretation of existing keywords.


In your buildout add Products.PloneKeywordManager to your instances eggs section or policy packages If you want similarity search add Products.PloneKeywordManager[Levenshtein] instead.

Run buildout. Activate it at Site Setups Add Ons page.


After installing, you will find an entry in Site Setup a section called Keyword Manager. Inside, you will see an alphabetical listing and a selection for all keywords existing in your site.

Use the last one to see similar terms for a single keyword. Use the former one if you want to see a list of all keywords starting with letter ‘b’, click it. The Plone Keyword Manager will then search all keywords starting with ‘b’ and will also look for similar keywords. You can now select several keywords and delete them for example. If you only want to change a single keyword, select it, then enter the new keyword and click on merge. If you want to merge several keywords into one new one, select them, enter the new keyword and click on merge.

The last selected keyword is entered automatically into the textbox if JavaScript is enabled. This may be irritating at first glance, but you’ll learn to appreciate quite fast. If you use it the right way, you don’t have to copy&paste into the textbox. Try it yourself, you’ll get the idea behind it…

For developers and integrators

You can also use KeywordManager to import your keywords with GenericSetup. You must have access to the file system to do this.

  • Add a file keywords.txt to the directory Products/PloneKeywordManager/profiles/default, with one keyword per line.

  • In the ZMI, go to portal_setup, Import tab. Locate the step called Create or update keywords. Check the box next to it, then click the button Import Selected Steps.

This will add or update a Document titled Keywords (with ID keyword) in the root of the Plone site; this document will have all the listed keywords assigned to it.

Leave this document in the private state so only an administrator will be able to see and edit it.

Each time you run this import step, the Keywords document’s keywords will be completely replaced with the contents of the keywords.txt file.

Version Information

  • 6.x is for Plone 6+

  • 3.x - 5.x Plone 5

  • for Plone 4.3 use versions <3

Source Code

Source code and issue tracker of this project is in the Plone Collective

For instructions how to contribute please read the Collective Information Page


PloneKeywordManager was mainly coded by Maik Jablonski during the Plone Paderborn Sprint (back in September 2003), founded by the Bertelsmann Foundation. First user interface updates and setup code by Alexander Limi from Plone Solutions. Joe Geldart from Netalley Networks updated the template to Plone 2.0 format. We would also like to thank Maik for letting us put this code in the Collective - so it can be improved and expanded easily.

After this, many people updated the code, templates and setup to follow up with the Plone releases.

These days the add-on is developed within the Plone Collective by a group of volunteers.


6.0.0 (2022-12-01)

Breaking Changes:

  • Version 6+ is for Plone 6+ only. Update management template to Plone 6 with Bootstrap 5. [petschki]

5.0.0 (2022-10-11)

  • No change since last release.

5.0.0a1 (2022-09-23)

  • Avoid a double loop by using set operations. [gforcada]

  • Clean up old code. [gforcada]

  • Turn the tool into a utility. Fixes issue #15. [gforcada]

4.0.1 (2022-05-06)

  • Fixed issue in renaming keywords. Fixes issue #70. [flipmcf]

  • Fix Redirection after form submit Fixes issue #68. [flipmcf] Fixes issue #66. [jensens, flipmcf]

  • Fix issue with search links from related keywords Fixes issue #67. [abl123, flipmcf]

  • Plone 4 specific code removal and updating comments / docstrings [flipmcf]

4.0.0 (2021-12-13)

  • Improvements to form performance when site has an extreme amount of keywords. Fixes issue #17. [flipmcf]

  • Improvements to UI/UX [flipmcf]

  • Filter out only None keyword values, not false values. [flipmcf]

  • Updating SearchableText index after keyword delete/rename [flipmcf]

  • Highlight Whitespace in keyword values enhancement [flipmcf]

  • Update Italian Translations [cekk]

  • Update German Translations [jensens]

  • Drop Python 2.7 support. Update code and test setup. [jensens]

3.0.3 (2021-01-27)

  • Ensure comments with acquired keywords are consistently reindexed. [alecpm]

  • Fix toggle to work with Chameleon. Fixes issue #33. [petschki]

3.0.2 (2019-10-07)

  • Added a toggle to show/hide related keywords. By default every keyword will only show once. [CorySanin]

3.0.1 (2019-10-07)

  • Filter out empty keywords before sorting. Otherwise the control panel is broken for some indexes. Fixes issue #28. [maurits]

3.0.0 (2019-03-14)

  • Fix problem with non-visible changes due to a side effect with collective.indexing beeing merged in core. [jensens]

  • Python 3, Plone 5.2 compatibility. Drop support for Plone < 5.1. [vangheem, jensens]

2.2.1 (2018-07-09)

  • Add translation to Brazilian Portuguese. [hvelarde]

  • Fix searchlink button to respect the selected index field in the query and quote the value for the search parameter [petschki]

2.2.0 (2016-03-07)

  • accessibility improvements [daniele-andreotti]

  • add compatibility with Plone 5 [cewing]

  • Drop support for Python 2.6. [hvelarde]

2.1.1 (2014-09-15)

  • Don’t break when searching encoded indexes. [davisagli]

  • Fix getSetter method in to handle also discussion items. [cekk]

2.1 (2014-04-27)

  • Enable search for values (search icon behind value). [jensens]

  • Decode values so they work with Dexterity. [davisagli]

  • Handle sets as field values. [davisagli]

  • Update Dexterity content even if it has no explicit setter. [davisagli]

  • Works when the field related to KeywordIndex is monovalued [thomasdesvenain]

  • UI and labels improvements [thomasdesvenain]
    • selected values are kept after form submission

    • change in selection lists automatically submit the form

    • keywords are clickable labels

    • added some helpers and tooltips, and improved labels

  • check for and Products.LinguaPlone [pbauer]

  • Fixed getSetter and getListFieldValues method in tool to handle also non-default field names [cekk]

  • Removed skins and moved control panel to a browser view [cekk]

  • Added custom permission to access the view [cekk]

  • Fixed uninstall profile [cekk]

  • Moved translations from i18n to locales [cekk]

2.0 (2013-04-24)

  • take into acount and set Language=all on change. [jensens]

  • Use png icon as gif icon has been removed. [thomasdesvenain]

  • Fix index update on keyword delete not to reindex all attributes. [leorochael]

  • Add support for dexterity (and generic DublinCoreImpl subclasses). [leorochael]

  • Tests use now; test coverage improved. [hvelarde]

  • Fix package distribution. [hvelarde]

  • Do not create a keywords Document in the plone-site in case the keywords.txt file is empty. (useful for sites not having Document globally allowed) [fRiSi]

  • Allow Site Administrators too access the keyword managment [fRiSi]

  • Make installation possible for dexterity-based Documents [pysailor]

1.9 (2011-06-22)

  • Fixed critical error at index update. [thomasdesvenain]

  • Upgrade imports for Zope 2.13. Remove deprecation warnings. [toutpt]

1.8 (2011-04-08)

  • Add tests related to skins-directories. [WouterVH]

  • remove old-style [WouterVH]

  • Add uninstall-profile. [WouterVH]

  • Fix marker-file for [WouterVH]

  • Add to include docs in release. [WouterVH]

  • Upgrade imports for Zope 2.13. Remove deprecation warnings. [thomasdesvenain]

  • Manage python-Levenshtein dependency as a setuptools extras_require. [thomasdesvenain]

  • French translation. [thomasdesvenain]

  • Internationalization fixes. [thomasdesvenain]

  • Added the z3c.autoinclude entry point so this package is automatically loaded on Plone 3.3 and above. [WouterVH]

  • Remove the old-style refresh.txt and version.txt. Version is now specified in [WouterVH]

  • Cleanup install-instructions. [WouterVH]

1.7 (20/08/2010)

  • Added ability to mix unicode and non-unicode keywords and changes. Fixes a bug with collective.dancing (and plone.z3cform) upgrading form inputs to unicode automagically. [dunlapm]

  • Restify the CHANGES.txt file. [toutpt]

  • Add keywords import through genericsetup. [toutpt]

  • Add a default profile based on Extensions/ [toutpt]

  • remove zope2 interface. [toutpt]

1.6 (19/03/2009)

  • Fixed handling of non-ASCII Keywords in Controller Python Scripts prefs_keywords_action_change.cpy and prefs_keywords_action_delete.cpy [disko]

  • Added tests for the above mentioned bugfixes. [disko]

  • Added German translation. [disko]

1.6b2 (15-11-2008)

  • No longer assumes that the index name is the same as the name of the underlying schema field. [jessesnyder]

1.6b1 (09-09-2008)

  • Eggification from PloneKeywordManager into Products.PloneKeywordManager. This package is only supported for Plone 3 now. It may or may not work in Plone 2.5. [dunlapm]

  • Added support for multiple keyword indexes. If you have more than one keyword field on your content type(s) then you will still be able to manage all of your keywords. If you only use the single default field then you will get the normal interface.

1.5-alpha1 (28-11-2007)

  • Plone 2.5 and Plone 3 compatibility for product PloneKeywordManager. [glenfant]

0.4 (unknown)

0.3 (05-04-2005)

  • Refactored code to run from a portal tool.

  • Minor clean ups.

  • Introduced the permission “Manage Keywords” to have better control about who can manage keywords.

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

Products.PloneKeywordManager-6.0.0.tar.gz (88.5 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page