You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update first part of README
* Add who is this for section
* features section overhaul
* Add requirements section
* Remove the control panel section from README
* Update backend README
* Update frontend README
* Add screenshots to README
* Sync README files
* Polish READMEs and add news fragments
- Fix broken markdown link in the frontend README caused by a missing
blank line after the badge HTML block
- Complete the frontend installation instructions with the required
`addons` registration
- Add a Usage section describing the keyword control panel
- Add a License section covering both packages
- Split Requirements into backend and frontend
- Add the Cookieplone attribution to the root credits
- Add documentation news fragments for all three towncrier scopes
Refs #3
* Lint fixes
---------
Co-authored-by: Érico Andrei <andrei@kitconcept.com>
Co-authored-by: Érico Andrei <ericof@gmail.com>
Copy file name to clipboardExpand all lines: README.md
+82-14Lines changed: 82 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,31 +1,87 @@
1
-
# kitconcept-keywordmanager 🚀
1
+
<divalign="center">
2
+
3
+
<h1align="center">Keyword Manager for Plone</h1>
4
+
5
+
</div>
6
+
7
+
<divalign="center">
2
8
3
9
[](https://github.com/plone/cookieplone-templates/)
The **Keyword Manager** is a Plone 6 add-on that lets content editors keep their site's keywords (also called subjects or tags) clean and consistent — without needing developer support. From a dedicated control panel, editors can rename, merge, and delete keywords, and every content item on the site is updated automatically.
27
+
7
28
> [!WARNING]
8
-
> This add-on is meant to be used in combination with the [volto-light-theme](https://github.com/kitconcept/volto-light-theme). If you plan to use this add-on with plain Volto you will have to write your own styles for it. You can use the existing ones via manual import like this `import "@kitconcept/volto-keywordmanager/theme/_main.scss"` or as reference. Read more about theming [here](https://6.docs.plone.org/volto/theming/theming-a-base-theme.html).
29
+
> This add-on is designed to work with [volto-light-theme](https://github.com/kitconcept/volto-light-theme). If your site uses a different theme, you will need to provide your own styles or import the existing ones manually: `import "@kitconcept/volto-keywordmanager/theme/_main.scss"`. See the [Volto theming documentation](https://6.docs.plone.org/volto/theming/theming-a-base-theme.html) for details.
9
30
10
-
Change, merge and delete keywords (subjects) in Plone 6.
31
+

11
32
12
-

33
+
## Who is this for?
34
+
35
+
-**Content editors** who manage tags and subjects on a Plone website and want a clean interface to keep keywords organised.
36
+
-**Site administrators and technical staff** who need to install and configure the add-on for their institution's Plone instance.
13
37
14
38
## Features 🔥
15
39
16
-
- Control Panel (frontend)
17
-
- Configurable (backend)
18
-
- REST-API Services (backend)
19
-
- Utility (backend)
40
+
-**Browse all keywords** currently in use, sorted by name or by number of occurrences.
41
+
-**Filter keywords** to quickly find a specific term in a long list.
42
+
-**Rename a keyword** — the new name is applied to every content item that uses it automatically.
43
+
-**Merge keywords** — combine synonyms, fix typos, or resolve ambiguities by merging multiple keywords into one canonical term; all affected content is updated in one step.
44
+
-**Delete keywords** — remove terms that are no longer needed.
45
+
-**Manage multiple keyword fields** — works with the standard `Subject` field and any other keyword-type index in the catalog.
46
+
47
+
## Requirements
48
+
49
+
### Backend
50
+
51
+
- Plone 6.1 or 6.2
52
+
- Python 3.11, 3.12, or 3.13
53
+
54
+
### Frontend
55
+
56
+
- Volto 18 or later (Plone's React-based frontend)
57
+
- Node.js 24
58
+
- pnpm
59
+
-[volto-light-theme](https://github.com/kitconcept/volto-light-theme) (recommended; see warning above)
20
60
21
61
## Installation 🔧
22
62
23
63
1. Frontend package:
24
64
65
+
Add the package to your Volto project.
66
+
25
67
```shell
26
68
pnpm add @kitconcept/volto-keywordmanager
27
69
```
28
70
71
+
Then register it as an add-on in your project's `package.json`.
72
+
73
+
```json
74
+
"addons": [
75
+
"@kitconcept/volto-keywordmanager"
76
+
],
77
+
"dependencies": {
78
+
"@kitconcept/volto-keywordmanager": "*"
79
+
}
80
+
```
81
+
82
+
> [!IMPORTANT]
83
+
> Installing the package without adding it to the `addons` array will not enable the control panel.
84
+
29
85
1. Backend package:
30
86
31
87
```shell
@@ -38,12 +94,13 @@ Change, merge and delete keywords (subjects) in Plone 6.
38
94
pip install kitconcept.keywordmanager
39
95
```
40
96
41
-
## Control Panel
97
+
Then install the add-on in your Plone site from the **Add-ons** control panel.
42
98
43
-
> [!NOTE]
44
-
> This section is a work in progress. Expect more information in the coming releases.
99
+
## Usage
45
100
46
-
The Keyword Manager allows you to maintain the keywords used in your website. Start by selecting the keyword field you want to manage. You can then sort, filter, rename, merge, or delete individual keywords.
101
+
Once installed, the Keyword Manager is available in the Plone site control panel.
102
+
Start by selecting the keyword field you want to manage, then sort, filter, rename, merge, or delete individual keywords.
103
+
Every content item using an affected keyword is updated automatically.
47
104
48
105
## Configuration
49
106
@@ -89,7 +146,7 @@ config.ALWAYS_REINDEX = (
89
146
)
90
147
```
91
148
92
-
## REST-API Services
149
+
## REST API
93
150
94
151
### GET `/@keywords` (or `/path/to/page/@keywords`)
95
152
@@ -133,6 +190,15 @@ km = getUtility(IKeywordManager)
133
190
134
191
Contributions are welcome! Please read [CONTRIBUTING.md](./CONTRIBUTING.md).
135
192
193
+
## License
194
+
195
+
This repository contains two packages, each under its own license.
|`@kitconcept/volto-keywordmanager`|[frontend/](./frontend/)| MIT |
201
+
136
202
## Credits and acknowledgements 🙏
137
203
138
204
This add-on is based on code from Products.PloneKeywordManager, adapted and extended for Plone 6 & Volto.
@@ -152,3 +218,5 @@ Building on that foundation, this package was created by the kitconcept GmbH to
152
218
There is an ongoing effort to bring keyword-management functionality into Plone core itself, tracked as [PLIP: Keyword Manager](https://github.com/plone/volto/issues/5300). This add-on is intended as a step toward that goal, a working, up-to-date implementation that can inform (and hopefully eventually be folded into) that core integration. Getting there will require several steps: stabilizing the add-on for Plone 6, gathering community feedback, aligning with the Volto/core UI patterns, and going through the PLIP review process. Contributions and feedback toward that end are welcome.
153
219
154
220
Thanks to Maik Jablonski and everyone who has contributed to Products.PloneKeywordManager over the years for the original work this builds on.
221
+
222
+
Generated using [Cookieplone (2.0.0a3)](https://github.com/plone/cookieplone) and [cookieplone-templates (cda10db)](https://github.com/plone/cookieplone-templates/commit/cda10db886223a9aa9be1b1368484296418bb880) on 2026-05-29 11:44:37.855709. A special thanks to all contributors and supporters!
The backend package for Keyword Manager for Plone — a Plone 6 add-on that lets content editors rename, merge, and delete keywords (subjects/tags) across a site, with all content updated automatically. See also the frontend package [@kitconcept/volto-keywordmanager](https://www.npmjs.com/package/@kitconcept/volto-keywordmanager).
-**Browse all keywords** currently in use, sorted by name or by number of occurrences.
34
+
-**Filter keywords** to quickly find a specific term in a long list.
35
+
-**Rename a keyword** — the new name is applied to every content item that uses it automatically.
36
+
-**Merge keywords** — combine synonyms, fix typos, or resolve ambiguities by merging multiple keywords into one canonical term; all affected content is updated in one step.
37
+
-**Delete keywords** — remove terms that are no longer needed.
38
+
-**Manage multiple keyword fields** — works with the standard `Subject` field and any other keyword-type index in the catalog.
39
+
40
+
## Requirements
41
+
42
+
- Plone 6.1 or 6.2
43
+
- Python 3.11, 3.12, or 3.13
44
+
45
+
## Installation 🔧
10
46
11
47
Install kitconcept.keywordmanager with uv.
12
48
@@ -20,7 +56,89 @@ Create the Plone site.
20
56
make create-site
21
57
```
22
58
23
-
## Contribute
59
+
## Configuration
60
+
61
+
This package allows for some configuration.
62
+
63
+
To configure one of the following options, import the config module like so:
64
+
65
+
```py
66
+
from kitconcept.keywordmanager import config
67
+
```
68
+
69
+
### Options
70
+
71
+
The keywords permission allows you to set a custom permission who should be able to manage keywords.
### Add features using `plonecli` or `bobtemplates.plone`
53
-
54
-
This package provides markers as strings (`<!-- extra stuff goes here -->`) that are compatible with [`plonecli`](https://github.com/plone/plonecli) and [`bobtemplates.plone`](https://github.com/plone/bobtemplates.plone).
55
-
These markers act as hooks to add all kinds of features through subtemplates, including behaviors, control panels, upgrade steps, or other subtemplates from `bobtemplates.plone`.
56
-
`plonecli` is a command line client for`bobtemplates.plone`, adding autocompletion and other features.
57
-
58
-
To add a feature as a subtemplate to your package, use the following command pattern.
59
-
60
-
```shell
61
-
make add <template_name>
62
-
```
63
-
64
-
For example, you can add a content type to your package with the following command.
65
-
66
-
```shell
67
-
make add content_type
68
-
```
69
-
70
-
You can add a behavior with the following command.
71
-
72
-
```shell
73
-
make add behavior
74
-
```
75
-
76
-
```{seealso}
77
-
You can check the list of available subtemplates in the [`bobtemplates.plone``README.md` file](https://github.com/plone/bobtemplates.plone/?tab=readme-ov-file#provided-subtemplates).
78
-
See also the documentation of [Mockup and Patternslib](https://6.docs.plone.org/classic-ui/mockup.html) for how to build the UI toolkit for Classic UI.
0 commit comments