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.
| Other sources specific to this macro |
|---|
|
| Criterion | Result | Notes |
|---|---|---|
| D1 wording | KO | minor: "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 summary | KO | "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 category | OK | the 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-action | KO | Quick 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 consistency | OK | compared 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-parameters | KO | the 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-example | OK | the 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 pattern | OK | compared 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-config | KO | Quick 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 instant | N/A | |
| I4 cursor | N/A | |
| I5 focus | OK | the macro has no parameter, so no mandatory one: the Edit Macro dialog only says "This macro has no parameters". |
| E1 wysiwyg | OK | with 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 errors | N/A | the macro has no parameter and no content, so there is no invalid value to test. |
| E3 nesting | KO | in 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-support | OK | the macro declares no inline support, and its output is a numbered list, a block that cannot be inside a sentence. |
| E5 empty | N/A | |
| E6 inplace | N/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.
| KO | Criterion | Existing tickets | New tickets |
|---|---|---|---|
| D1 | D1 wording | XWIKI-25493 | |
| D2 | D2 summary | XWIKI-25493 | |
| D4 | D4 quick-action | XWIKI-25444 | |
| L2 | L2 doc-parameters | XINFRA-525 | |
| I2 | I2 zero-config | XWIKI-25512 | |
| E3 | E3 nesting | XWIKI-23501 (partial) | XRENDERING-829 |
Tickets
| Ticket | Origin | KOs covered | KOs partly covered |
|---|---|---|---|
| XWIKI-23501 | Existing | E3 | |
| XWIKI-25444 | New | D4 | |
| XWIKI-25493 | New | D1 D2 | |
| XINFRA-525 | New | L2 | |
| XWIKI-25512 | New | I2 | |
| XRENDERING-829 | New | E3 |
Known issues of this macro
| Issue | Title | Status | Criteria |
|---|---|---|---|
| XWIKI-5713 | WYSIWYG section editing add {{putFootnotes/}} in section if a document with footnotes is included | Reopened |
68 more known issues affect every macro: see the Known issues.
Lucas Charpentier