Documentation status

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

This page tracks the progress on the documentation and consistency criteria of the macros, then, as of 2026-09-23, where each of the 68 macros analysed in this proposal is documented, and whether that documentation has been migrated to the new documentation tree on xwiki.org.

Documentation and consistency criteria

The KOs of the criteria L1, L2 and L3 of the Triage are not reported macro by macro: L2 and L3 are each tracked by one generic JIRA issue, and L1 by one issue per macro; the tables below show their progress. When a fix is done, set the status of its row to In progress or Fixed and link the documentation page, the pull request or the ticket in the Fix column. A row is Other ticket when a ticket of another criterion makes the KO moot, like a macro moving to the Internal category, whose documentation is then not needed.

The documentation column says where the macro is documented at the time of the audit, see the Status per macro section below for the migration of each macro. "Minor" marks the KOs recorded as minor in the audit.

L1 consistency

JIRA issues: one per macro, in the Fix column. 2 KOs, as of 22 October 2026.

MacroStatusDocumentationProblemFix
galleryTo doLegacyIts mandatory content uses a format of its own, a plain text list of images, so its Quick Action opens the Edit Macro dialog, unlike figure and container.XWIKI-25506
officeTo doLegacyIt declares no mandatory parameter, unlike include and display, so its Quick Action inserts an empty call that renders an error box.XWIKI-25507

L2 doc-parameters

JIRA issue: XINFRA-525. 51 KOs, as of 22 October 2026. Unless the Problem column says otherwise, the parameters are only documented on a legacy extensions.xwiki.org page, with no page in the new documentation tree: the fix is the migration of that page, checked against the macro descriptor.

MacroStatusDocumentationProblemFix
activityTo doLegacyDocuments a "subentries" parameter that does not exist. The defaults of wikis, spaces and authors are only in the text.-
cacheTo doLegacyNo new page, unlike async. The content is not listed, and the page gives id a default that the descriptor leaves empty.-
chartTo doLegacyLists colors as a parameter while it is a key of params. Documents width and height as strings instead of integers. The content is not in the table.-
chartjsTo doLegacyThe mandatory content is not in the table. The type list misses horizontalBar. Width and height only exist as keys of options.-
childrenTo doLegacyDocuments the "name" sort, which the Sort by select does not offer.-
codeTo doLegacyDocuments only language, layout and source, and covers the box parameters with a reference to the Box Macro page.-
commentTo doLegacyMinor. Says "No parameters." and does not describe the mandatory content.-
containerTo doLegacycssClass and the content are not documented.-
contentTo doLegacyGives syntax as mandatory, while it defaults to the current syntax since XWiki 15.1. The content is not documented.-
contextTo doLegacyThe parameters are a list with no table. The content is not mentioned, and the default of transformationContext is not stated.-
dashboardTo doLegacyGives "none" as the default of layout, while the macro declares columns.-
documentsTo doLegacyThe description parameter is not documented. Documents space and parent as deprecated parameters the macro does not declare.-
documentTreeTo doLegacyDocuments showChildDocuments, which was removed, and gives sortDocumentsBy a title:asc default the macro does not declare.-
exampleOther ticketNoneNo documentation at all.XWIKI-25018: the macro becomes internal.
faqTo doLegacySection of the FAQ Application page. filter is described in one sentence, with no table, and its keys only appear in the examples.-
figureTo doLegacyThe table lists only type. The content and its optional flag are only shown in the examples.-
figureCaptionTo doLegacySection of the Figure Macro page. The content of the caption is not documented.-
footnoteTo doLegacyDescribes the content as "text" and does not say that it is mandatory.-
galleryTo doLegacyThe content and its mandatory flag are missing. The documented defaults of width and height come from the stylesheet, not the descriptor.-
groovyTo doLegacyThe content and jars are not documented, output is only mentioned and wiki is not described.-
htmlTo doLegacyThe legacy table matches the descriptor: only the migration is missing.-
iconPickerTo doLegacySection of the Icon Theme Application page, with no parameter table. prefix is not documented and its stated default is wrong.-
idTo doLegacyOnly the migration is missing.-
includeTo doLegacyGives "document" as the only value of type, while the macro accepts 13 entity types.-
jwplayerTo doLegacyNo mandatory or default column, and the values of attachment are split in two rows by version.-
liveDataTo doNewNew page. The documented defaults of showPageSizeDropdown and properties do not match the behavior. The content is not in the table.-
mathjaxTo doLegacyNo parameter table: the mandatory content is not listed.-
mentionTo doLegacySection of the Mentions Application page. Marks style and anchor as mandatory, and gives wrong or missing defaults for anchor, type and style.-
menuTo doLegacylabel and the content are not documented. Documents modifiers of type that the descriptor does not mention.-
notificationsApplicationsPreferencesOther ticketNewMinor. Shared Notification Settings Macros page: no parameter table, no default for target, no mandatory flags.XWIKI-25468: the macro moves to the Internal category.
notificationsAutoWatchPreferencesOther ticketNewMinor. Shared Notification Settings Macros page: no parameter table, no default for target, no mandatory flags.XWIKI-25468: the macro moves to the Internal category.
notificationsCustomFiltersPreferencesOther ticketNewMinor. Shared Notification Settings Macros page: no parameter table, no default for target, no mandatory flags.XWIKI-25468: the macro moves to the Internal category.
notificationsEmailPreferencesOther ticketNewMinor. Shared Notification Settings Macros page: no parameter table, no default for target, no mandatory flags.XWIKI-25468: the macro moves to the Internal category.
notificationsFiltersPreferencesOther ticketNoneNo documentation at all.XWIKI-25468: the macro moves to the Internal category.
notificationsSystemFiltersPreferencesOther ticketNewMinor. Shared Notification Settings Macros page: no parameter table, no default for target, no mandatory flags.XWIKI-25468: the macro moves to the Internal category.
officeTo doLegacyMarks both reference and attachment as mandatory, while only one is needed. Misdescribes filterStyles. No example of the plain call.-
plantumlTo doLegacyThe content is not in the table, and the documented defaults of format and type differ from the dialog.-
putFootnotesTo doLegacySection of the Footnote Macro page, accurate: only the migration is missing.-
pythonTo doLegacyNo parameter table. The content, jars and output are not documented, and wiki is only mentioned.-
scriptTo doLegacyThe content is not documented and language has no default. Documents the script bindings as if they were parameters.-
tableToChartJSTo doLegacySection of the Chart.js Integration page. The type list misses horizontalBar, width and height have no unit, and the useful options are only documented for chartjs.-
tagcloudTo doLegacySays to use the macro in xwiki/2.0 syntax, and gives limit a "no limit" default the macro does not declare.-
templateTo doLegacyThe new Templates page only quotes the call. Documents name as mandatory, which the macro does not declare, and the description of output has a typo.-
tocTo doLegacyOnly the migration is missing.-
translationTo doLegacyThe content, the message shown when the key has no translation, is not documented.-
treeTo doLegacyThe content and exclusions are not documented, and the description of root differs from the one of the macro.-
uiextensionTo doLegacyDoes not say what a UI extension is or where to find the identifiers.-
uiextensionsTo doLegacyDoes not say what an extension point is or list the ones of XWiki Standard.-
useravatarTo doLegacyWrong default and description for height. Calls the avatar a URL, while it is an attachment of the profile.-
velocityTo doLegacyOnly filter is documented. The content and jars are missing, and output and wiki are only mentioned.-
wikimacroparameterTo doNewMinor. New page with no parameter table: name is not marked as mandatory, and the Content parameter is never mentioned.-

L3 doc-example

JIRA issue: XINFRA-526. 20 KOs, as of 22 October 2026. The fix is an example of the most common use that renders on XWiki Standard when copied, in the new documentation page of the macro.

MacroStatusDocumentationProblemFix
cacheTo doLegacyMinor. Every example caches placeholder text, none shows the real use, the result of a slow script, and Example 1 fails when copied.-
contentTo doLegacyThe example uses the confluence/1.0 syntax, missing from XWiki Standard, and renders an error.-
dashboardTo doLegacyMinor. No example to copy: the only call is an unclosed {{dashboard}} in a sentence, and the suggested source is a page hidden from the picker.-
exampleOther ticketNoneNo documentation, so no example.XWIKI-25018: the macro becomes internal.
faqTo doLegacyMinor. The examples are filter fragments, not macro calls, and filter="tag=test" lists nothing.-
groovyTo doLegacyMinor. The Parameters definition shows an incomplete fragment, and the Example section repeats the first example.-
htmlTo doLegacyMinor. The examples show off wiki="true" or hold no HTML: none inserts plain HTML markup.-
iconPickerTo doLegacyNo documentation example calls the macro.-
includeTo doLegacyThe usage starts with the hidden page parameter. The reference form only comes as Example 4, on a page that does not exist.-
jwplayerTo doLegacyMinor. The block of examples fails when copied, since its 5 standalone calls are in one paragraph.-
notificationsApplicationsPreferencesOther ticketNewNo example of the most common call, the one of the user profile with user.XWIKI-25468: the macro moves to the Internal category.
notificationsAutoWatchPreferencesOther ticketNewNo example of the most common call, the one of the user profile with user.XWIKI-25468: the macro moves to the Internal category.
notificationsCustomFiltersPreferencesOther ticketNewNo example of the most common call, the one of the user profile with user.XWIKI-25468: the macro moves to the Internal category.
notificationsEmailPreferencesOther ticketNewNo example of the most common call, the one of the user profile with user.XWIKI-25468: the macro moves to the Internal category.
notificationsFiltersPreferencesOther ticketNoneNo documentation, so no example.XWIKI-25468: the macro moves to the Internal category.
notificationsSystemFiltersPreferencesOther ticketNewNo example of the most common call, the one of the user profile with user.XWIKI-25468: the macro moves to the Internal category.
templateTo doLegacyThe only example uses a placeholder template name and renders nothing. The most common call, loading a macro library, is not documented.-
uiextensionTo doLegacyThe only example passes the Maven identifier of an extension and renders an error.-
uiextensionsTo doLegacyThe only example uses an extension point with no extension, so it renders nothing.-
velocityTo doLegacyMinor. Example 1 is a template with placeholders and Example 4 fails with a parse error.-

Summary

  • 12 macros have a Reference page in the new documentation tree.
  • 47 macros are still documented only in the legacy documentation, mostly on extensions.xwiki.org.
  • 9 macros have no documentation at all.

Beyond the migration itself, a recurring problem shows in the table: 13 macros have no page of their own and are only covered by a section of the page of the application that ships them, which makes them hard to find and impossible to link to precisely.

Status per macro

MacroStatusNew documentationLegacy documentationNotes
activityLegacy only-Activity Macro
asyncMigrated"async" MacroAsync Macro
attachmentGalleryPickerMigrated"attachmentGalleryPicker" MacroAttachment > Picker > Macro
attachmentSelectorMigrated"attachmentSelector" MacroAttachment ApplicationSection of a larger page.
boxMigrated"box" MacroBox Macro
cacheLegacy only-Cache Macro
chartLegacy only-Chart Macro
chartjsLegacy only-Chart.js IntegrationSection of a larger page.
childrenLegacy only-Children Macro
codeLegacy only-Code Macro
commentLegacy only-Comment Macro
containerLegacy only-Container Macro
contentLegacy only-Content Macro
contextLegacy only-Context Macro
dashboardLegacy only-Dashboard Macro
displayMigrated"display" MacroDisplay Macro
displayIconMigratedThe displayIcon MacroIcon Macro
documentsLegacy only-Documents Macro
documentTreeLegacy only-Document Tree Macro
errorMigrated"error" MacroError Macro
exampleUndocumented-NoneNo page found: the Help Application page does not mention it.
faqLegacy only-FAQ ApplicationSection of a larger page.
figureLegacy only-Figure > Figure Macro
figureCaptionLegacy only-Figure > Figure MacroSection of a larger page.
figureTypeRecognizerLegacy only-Figure > Figure MacroSection of a larger page.
footnoteLegacy only-Footnote Macro
galleryLegacy only-Gallery Macro
groovyLegacy only-Groovy Macro
htmlLegacy only-HTML Macro
iconPickerLegacy only-Icon Theme ApplicationSection of a larger page.
idLegacy only-Id Macro
includeLegacy only-Include Macro
infoMigrated"info" MacroInfo Macro
jiraMigrated"jira" MacroJIRA > JIRA Macro
jwplayerLegacy only-JW Player Macro
liveDataMigrated"liveData" MacroLive Data Macro
mathjaxLegacy only-MathJax > MathJaxMacro
mentionLegacy only-Mentions ApplicationSection of a larger page.
menuLegacy only-Menu ApplicationSection of a larger page.
notificationsLegacy only-Notifications Macro
notificationsApplicationsPreferencesUndocumented-NoneAdmin macro, no page found.
notificationsAutoWatchPreferencesUndocumented-NoneAdmin macro, no page found.
notificationsCustomFiltersPreferencesUndocumented-NoneAdmin macro, no page found.
notificationsEmailPreferencesUndocumented-NoneAdmin macro, no page found.
notificationsFiltersPreferencesUndocumented-NoneAdmin macro, no page found.
notificationsSystemFiltersPreferencesUndocumented-NoneAdmin macro, no page found.
officeUndocumented-NoneNot analysed, no page found.
pdftocUndocumented-NoneOnly the Java source documents it: not on extensions.xwiki.org.
plantumlLegacy only-PlantUML Macro
putFootnotesLegacy only-Footnote MacroSection of a larger page.
pythonLegacy only-Python Macro
scriptLegacy only-Script Macro
successMigrated"success" MacroSuccess Macro
tableToChartJSLegacy only-Chart.js IntegrationSection of a larger page.
tagcloudLegacy only-Tag Cloud Macro
templateLegacy only-Template Macro
tocLegacy only-TOC Macro
translationLegacy only-Translation Macro
treeLegacy only-Tree Macro
uiextensionLegacy only-Extension Module > UI Extension Macro
uiextensionsLegacy only-Extension Module > UI Extensions Macro
useravatarLegacy only-User Avatar Macro
velocityLegacy only-Velocity Macro
warningMigrated"warning" MacroWarning Macro
wikimacrocontentLegacy only-Wiki Macro TutorialSection of a larger page.
wikimacroparameterLegacy only-Wiki Macro TutorialSection of a larger page.
wikisLegacy only-Wiki ApplicationSection of a larger page.

Conventions

A macro counts as Migrated when a page built on the DocApp.Code.RenderingMacroClass template exists for it under documentation. The list of those pages comes from the Solr query class:"DocApp.Code.RenderingMacroClass", so this table can be refreshed by re-running it.

The migration conventions themselves, from the page template to the parameter table columns and the naming and placement rules, are discussed in the forum thread Consistency of the macro parameter table.

Get Connected