Extract child page counter numbers from page titles
Scenario
The Add page macro (part of the Linking app) can automatically generate pages with incremental numbers in the titles, for example, Incident Report 001, Incident Report 002, Incident Report 003, and so on.
Result
This example recipe will generate such pages.
You can also inject the incrementing numbers into each generated page. For example, you can have a Report Number field, and it can contain the same three-digit number from the title:
Report Number: 001
Report Number: 002
Report Number: 003 and so on
This recipe will automatically create pages with incrementing numbers, along with matching number fields in the pages.
Recipe
Apps | Reporting for Confluence Data Center, Linking for Confluence Data Center |
|---|---|
Level | Intermediate |
Estimated time | 25 minutes |
Macros | Report Info, Report Variable |
Suppliers | Child Counter Supplier |
Storage format
You can copy and paste this code into the Confluence Source Editor:
<p>
<ac:structured-macro ac:macro-id="1ecd3808-f211-433c-8993-552ccfd14884" ac:name="add-page" ac:schema-version="1">
<ac:parameter ac:name="name">Incident Report %child-counter:next > number:000%</ac:parameter>
<ac:parameter ac:name="linkText">Create a new incident report</ac:parameter>
<ac:parameter ac:name="source">Incident Report Template</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="46068b0f-91dd-4927-aa7d-38e2b74e50ee" ac:name="children" ac:schema-version="2">
<ac:parameter ac:name="sort">title</ac:parameter>
</ac:structured-macro>
</p>
Steps
Create a landing page by using the storage format code above, and provide a suitable name, such as
Incident Report Main Page.Create a template file for incident reports. This file is loaded whenever a user clicks the Generate an incident report link. You can copy and paste the code below for your template file with the Confluence Source Editor:
<ac:structured-macro ac:macro-id="c0f2b51e-ad37-4dd1-81c0-7783cebc11da" ac:name="report-variable" ac:schema-version="1"> <ac:parameter ac:name="default">%page:title> text:last 3%</ac:parameter> <ac:parameter ac:name="name">pageNum</ac:parameter> <ac:parameter ac:name="value">%page:title> text:last 3%</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> <p> <br/> </p> <table class="wrapped relative-table" style="width: 56.3614%;"> <colgroup> <col style="width: 55.4387%;"/> <col style="width: 44.6494%;"/> </colgroup> <tbody> <tr> <td> <div class="content-wrapper"> <p> <strong>Report Number:</strong> <ac:structured-macro ac:macro-id="2d8755ec-9cb7-4cd3-8d2b-7cf098b26bdc" ac:name="report-info" ac:schema-version="1"> <ac:parameter ac:name="">variable:pageNum</ac:parameter> </ac:structured-macro> </p> </div> </td> <td> <div class="content-wrapper"> <p> <strong>Date: </strong> </p> <ac:structured-macro ac:macro-id="9d970e6e-8320-48b8-9175-ff6d6da7b6ed" ac:name="date-data" ac:schema-version="1"> <ac:parameter ac:name="name">datepicker</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> </div> </td> </tr> <tr> <td colspan="2"> <div class="content-wrapper"> <p> <strong>Incident Details:</strong> </p> <ac:structured-macro ac:macro-id="d39b9896-1c77-4f8d-b297-ee10f68925db" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">details</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> </tr> </tbody> </table>Save the file and provide a suitable name, such as
Incident Report Template. You can either save it as a template (requires space administrator privileges) or as just a standard Confluence page.After you have created and saved the template, you can reference it from the Add Page macro used for the landing page. Edit the landing page and the Add Page macro within it.
In the Edit 'Add Page' Macro dialog, enter or paste the template page name under Source, and select either template or page under Source Type, depending on what you used in the earlier step.
Click Save, then click Save again to save the landing page.
The landing page is now available to users.