putFootnotes

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

Audit

Macro ID
putFootnotes
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
toc 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/Footnote%20Macro#HUsage-1
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-rendering/blob/xwiki-rendering-18.8.0/xwiki-rendering-macros/xwiki-rendering-macro-footnotes/src/main/java/org/xwiki/rendering/internal/macro/footnote/PutFootnotesMacro.java
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, D3toc, children
Other sources specific to this macro
CriterionResultNotes
D1 wordingKOminor: "Put Footnotes" is the macro ID split into words, an instruction to the macro rather than what it produces: users would look for "Footnotes" or "Footnote list". The French "Afficher les notes de bas de page" and the German "Zeige Fußnoten an" repeat the verb.
D2 summaryKO"Displays all the footnotes from the page. If missing, all footnotes are displayed by default at the end of the page." does not say that a page shows only one list of footnotes, the last putFootnotes, nor that the editor already adds one at the end of a page with footnotes. So on a page that has footnotes, an inserted putFootnotes is silently lost: the macro just inserted disappears with no message and the list stays at the end. To reproduce: on a page holding Intro{{footnote}}N1{{/footnote}}. and "End paragraph", put the cursor after "Intro", press Enter, type "/putfootnotes" and Enter: the new line disappears and the page saves as Intro{{footnote}}N1{{/footnote}}. , "End paragraph", {{putFootnotes/}} . To move the list, the user would first have to find and delete the one at the end, which the description should tell. The English description of the Java code, "Displays the footnotes defined so far.", is outdated, the list holds every footnote of the page even when the macro comes before them, but the translation shown in the editor is right.
D3 categoryOKthe macro is in Content, like its companion footnote, where users would look for it. The compared generators, toc and children, are in Navigation, since they list the page headings or the child pages: the footnote list is part of the content of the page, so the different category is by design.
D4 quick-actionKOQuick Actions finds the macro first for "putFootnotes", "Put Footnotes", the German name "Zeige Fußnoten an" and the synonyms "footnotes" and "notes", before the footnote macro. The synonyms "endnotes" and "references" give no result, "references" only lists notification preferences. The French name "Afficher les notes de bas de page" gives no result because it is longer than the 30 characters Quick Actions reads after the slash, a generic limit of the xwiki-slash plugin; "notes de bas de page" finds it second, after footnote.
L1 consistencyOKcompared with toc and children: like them, the macro has no mandatory parameter, no content and no default value, and the Quick Action inserts it right away, with no dialog. Its only difference, that a second list replaces the first one, is counted under I1.
L2 doc-parametersKOthe macro is documented only on the legacy extensions.xwiki.org page of the Footnote Macro, with no page in the new documentation, the same page as footnote. That page is accurate: it lists no parameter and says that only the last putFootnotes macro of a page displays the footnotes.
L3 doc-exampleOKthe documentation example, a heading, a paragraph with two footnotes, {{putFootnotes/}} and a P.S. paragraph, renders without error and shows the list between the paragraph and the P.S., the most common use of the macro.
I1 patternOKcompared with children, the reference generator: on an empty page both are inserted by their Quick Action without a dialog, and through the Insert Macro dialog with an Edit Macro dialog that only needs Submit. On a page that already has footnotes the inserted macro disappears, which is counted under D2, since the description does not say that only one list is shown per page.
I2 zero-configKOQuick Actions and the Edit Macro dialog submitted with the default values insert {{putFootnotes/}} . On a page without footnotes it shows the generic "macro:putFootnotes" placeholder in the editor and renders nothing in view mode, with no hint that the list fills in once footnotes are added, like toc on a page without headings.
I3 instantN/A
I4 cursorN/A
I5 focusOKthe macro has no parameter, so no mandatory one: the Edit Macro dialog only says "This macro has no parameters".
E1 wysiwygOKwith the documentation example, the editor shows the numbered list of footnotes with their back links at the place of the macro, like view mode. On a page without footnotes the editor shows the generic placeholder, counted under I2.
E2 errorsN/Athe macro has no parameter and no content, so there is no invalid value to test.
E3 nestingKOin a list item and in a table cell, like * {{putFootnotes/}} , the macro is inline and renders "The [putFootnotes] macro is a standalone macro and it cannot be used inline." in the editor and in view mode. The footnotes of the page then break too: since the page has a putFootnotes macro, none is added at the end, and A{{footnote}}N1{{/footnote}}. followed by * one , * {{putFootnotes/}} renders as "AN1.", the note text glued to the sentence with no number. In a box it works, the list renders inside the box.
E4 inline-supportOKthe macro declares no inline support, and its output is a numbered list, a block that cannot be inside a sentence.
E5 emptyN/A
E6 inplaceN/A

Other notes

The earlier analysis reported that the macro disappears when it is inserted on a page that already has a putFootnotes macro: it still happens on 18.8.0, see I1, and it also happens on a page with footnotes and no explicit putFootnotes, since the editor adds one at the end.

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
D1D1 wordingXWIKI-25493
D2D2 summaryXWIKI-25493
D4D4 quick-actionXWIKI-25444
L2L2 doc-parametersXINFRA-525
I2I2 zero-configXWIKI-25512
E3E3 nestingXWIKI-23501 (partial)XRENDERING-829
Success

Every KO is covered by a ticket.

Tickets

TicketOriginKOs coveredKOs partly covered
XWIKI-23501ExistingE3
XWIKI-25444NewD4
XWIKI-25493NewD1 D2
XINFRA-525NewL2
XWIKI-25512NewI2
XRENDERING-829NewE3

Known issues of this macro

IssueTitleStatusCriteria
XWIKI-5713WYSIWYG section editing add  {{putFootnotes/}} in section if a document with footnotes is includedReopened

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

Get Connected