tagcloud

Last modified by Lucas Charpentier on 2026/10/27 10:30

Audit

Macro ID
tagcloud
Source
XS
Type
Generator
Classification reason

Status
Reviewed
Criteria version
15.20
XWiki version
18.8.0
Audit date
2026-10-19
Auditor
Compared macros
documents children

Sources

Where to gather the information the criteria are checked against, see Gather the sources.

SourceWhat it givesUsed forWhere
DocumentationParameters, default values and examples, including the most common exampleL2, L3, and the criteria measured with the most common examplehttps://extensions.xwiki.org/xwiki/bin/view/Extension/Tag%20Cloud%20Macro#HUsage
Source codeHow the macro declares its parameters and content: types, groups, features, advanced and hidden flags, constraints, content type, inline supportC4, C5, C7, C8, C9, C13, E4, E6https://github.com/xwiki/xwiki-platform/blob/xwiki-platform-18.8.0/xwiki-platform-core/xwiki-platform-tag/xwiki-platform-tag-ui/src/main/resources/XWiki/TagCloud.xml
Macro descriptorWhat the Edit Macro dialog is built from, on design.xwiki.orgD1, D2, C1 to C9, E4Descriptor, list of macros with their categories
TranslationsThe name, description and parameter names in each languageD1, D2, D4, C1l10n.xwiki.org
Uses in XWiki pagesHow XWiki itself uses the macro, a realistic example when the documentation has noneL3, C2, C3, C6, C8, C9Search the xwiki organization on GitHub
Compared macrosThe audits of the macros of the same typeL1, D3documents, children
Other sources specific to this macro
CriterionResultNotes
D1 wordingOK
D2 summaryKO"Displays the cloud of tags in this wiki or in the specified space, if any." repeats the name, "Tag Cloud", and does not say what a tag cloud is: the tags of the pages, each one larger the more pages use it, and each one a link to the list of its pages. It also uses "space", a term the UI no longer shows, and does not mention the several spaces of spaces nor the limit.
D3 categoryKOminor: the macro is in Content, like documents, while children and documentTree, which also lead the user to other pages, are in Navigation, where a user looking for a tag cloud, a set of links to the pages of each tag, would also look.
D4 quick-actionKOQuick Actions finds the macro first for its ID "tagcloud", its name "Tag Cloud", the French name "Nuage de tag" and the synonym "tags". The synonyms "tag list", "labels", "keywords", "word cloud" and "popular tags" give no result.
L1 consistencyOKcompared with documents and children: like them, no parameter is mandatory, there is no content, the Quick Action inserts the macro right away, with no dialog, and no default value is declared. The parameter that sets which pages are covered differs: space and spaces, plain space references, where documents has location and children a root picker.
L2 doc-parametersKOthe parameters are only documented on the legacy extensions.xwiki.org page, not in the new documentation. That page says to embed the macro "on a xwiki 2.0 syntax page", and gives "no limit" as the default of limit, which the macro does not declare.
L3 doc-exampleOKthe most common example is {{tagcloud /}} , the Usage example of the documentation, also used by the Tags page and the wiki dashboard of XWiki Standard, which renders without error.
I1 patternOKcompared with children, the reference generator: both are inserted by their Quick Action without a dialog, and through the Insert Macro dialog with an Edit Macro dialog whose fields are all optional.
I2 zero-configOKQuick Actions and the Edit Macro dialog submitted with the default values insert {{tagcloud/}} , which shows the tags of the whole wiki in the editor and in view mode, with no error. In a wiki where no page is tagged, it shows "No page has been tagged yet" as plain text, not as an error.
I3 instantN/A
I4 cursorN/A
I5 focusOKthe macro has no mandatory parameter. The focus is on the first field, Limit.
E1 wysiwygOKthe editor shows the tag cloud as in view mode, only the macro frame differs.
E2 errorsKOinvalid values are accepted silently or give a misleading or technical message. {{tagcloud limit="abc"/}} , {{tagcloud limit="-3"/}} and {{tagcloud limit="0"/}} show "No page has been tagged yet" while pages are tagged. {{tagcloud space="No.Such"/}} , and a nested page given without its parent, like space="Team" for MacroAudit.TagcloudFixture.Team , show "No tag has been added on this page or on its children", which does not say that the page does not exist. {{tagcloud spaces="Sandbox"/}} , a space without the single quotes, fails with "Failed to execute the [velocity] macro. Cause: [Error number 0 in 5: Unexpected character `S` at position 1 in [Sandbox]]" and a stack trace. Setting both space and spaces gives a clear error: "Do not use "space" and "spaces" parameter in the same time".
E3 nestingKOin a list item and in a table cell, like * {{tagcloud/}} , the macro is inline and renders "The [tagcloud] macro is a standalone macro and it cannot be used inline." in the editor and in view mode. In a box it renders. The macro has no content, so the second half of the measure does not apply.
E4 inline-supportOKthe macro declares no inline support, and its output is a list of tags in its own block, which a sentence could not hold.
E5 emptyN/A
E6 inplaceN/A

Parameters

ParameterC1 clarityC2 mandatoryC3 defaultsC4 input-assistanceC5 groupsC6 orderC7 alternativesC8 advancedC9 technicalC13 constraintsNotes
spaceKOOKOKKOOKOKKOOKOKN/A

C1: "Space" is a technical term that the UI no longer shows since nested pages; the English name is the parameter ID, "space", which the dialog shows capitalized. The description does not say that the full reference of the page is needed, nor that its child pages are included: {{tagcloud space="TagcloudFixture"/}} shows "No tag has been added on this page or on its children" while {{tagcloud space="MacroAudit.TagcloudFixture"/}} shows its tags, and space="MacroAudit.TagcloudFixture.Team.WebHome" , the reference of the page, gives no tag either.

C3: the field opens empty, which stands for the whole wiki, as the description says, the value of the most common example.

C4: a plain text field for the page whose tags are shown, with its child pages, where a page picker could be used.

C6: the fields are in the order Limit, Space, Spaces, so the pages whose tags are shown come after the number of tags. The most common example sets none of them, so the order is OK per the measure.

C7: space and spaces are two ways to set the same feature, the pages whose tags are shown, but they are two separate fields, and setting both renders the error "Do not use "space" and "spaces" parameter in the same time".

spacesKOOKOKKOOKOKKOOKOKKO

C1: the description asks for space references "separated by comma "," and wrapped in single quotes "'"", a developer format, and uses "space", a term the UI no longer shows. A list without the quotes, like {{tagcloud spaces="MacroAudit.TagcloudFixture.Team"/}} , fails with a stack trace, see E2.

C4: a plain text field for a list of pages, where a page picker accepting several pages could be used.

C7: an alternative of space for several pages, shown as a separate field, see the notes of space.

C13: the value has a format, quoted space references separated by commas, which the macro cannot declare: it is a wiki macro, whose parameters cannot declare a range or a format, see XWIKI-25197 in the Cross-macro findings. spaces="Sandbox" is accepted by the dialog and fails at rendering, see E2.

limitKOOKOKKOOKOKN/AOKOKKO

C1, minor: the description does not say that an empty field shows every tag, nor which tags are kept, the most used ones. The French name and description are left in English, to fix on l10n.xwiki.org.

C3: the field opens empty, which stands for no limit, the value of the most common example.

C4: a plain text field for a number of tags, which a number field would fit, although the parameter is declared as an integer.

C13: the macro is a wiki macro, whose parameters cannot declare a range or a format, see XWIKI-25197 in the Cross-macro findings. limit="-3" is accepted and shows "No page has been tagged yet", while pages are tagged.

KOs and tickets

Every KO needs a ticket covering it, see Report the KOs. One ticket can cover several KOs. Known issues filed for this macro are suggested in italics: link them as existing tickets when they cover the KO.

KOCriterionExisting ticketsNew tickets
D2D2 summaryXWIKI-25470
D3D3 categoryXWIKI-25470
D4D4 quick-actionXWIKI-25444
L2L2 doc-parametersXINFRA-525
E2E2 errorsXWIKI-25197 (partial)XCOMMONS-3847 (partial), XRENDERING-823 (partial), XWIKI-25534 (partial)
E3E3 nestingXWIKI-23501
C1:spaceC1 clarity, spaceXWIKI-17818
C4:spaceC4 input-assistance, spaceXWIKI-25534
C7:spaceC7 alternatives, spaceXWIKI-17818
C1:spacesC1 clarity, spacesXWIKI-17818
C4:spacesC4 input-assistance, spacesXWIKI-25534
C7:spacesC7 alternatives, spacesXWIKI-17818
C13:spacesC13 constraints, spacesXWIKI-25197
C1:limitC1 clarity, limitXWIKI-25470
C4:limitC4 input-assistance, limitXWIKI-25182
C13:limitC13 constraints, limitXWIKI-25182 (partial), XWIKI-25197
Success

Every KO is covered by a ticket.

Tickets

TicketOriginKOs coveredKOs partly covered
XWIKI-17818ExistingC1:space C1:spaces C7:space C7:spaces
XWIKI-25182ExistingC4:limitC13:limit
XWIKI-25197ExistingC13:limit C13:spacesE2
XCOMMONS-3847NewE2
XRENDERING-823NewE2
XWIKI-25444NewD4
XWIKI-25470NewC1:limit D2 D3
XINFRA-525NewL2
XWIKI-25534NewC4:space C4:spacesE2
XWIKI-23501ExistingE3

Known issues of this macro

IssueTitleStatusCriteria
XWIKI-17818The Tag Cloud Macro should use "page" and "pages" parametersOpenL1

68 more known issues affect every macro: see the Known issues.

Get Connected