Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

This is applicable only to the Server version.

...

The steps will guide you on how to include the content of all children of a page, headed by the page title and a link to edit the page.

Result

...

Recipe

...

Ingredients

Apps

Linking for Confluence, Reporting for Confluence, Visibility for Confluence

Platform

Server

Level

ADVANCED

Estimated time

...

30 minutes ⏱

Macros

Content Reporter, Report Block, Report Body, Report Info, Text Sort

Suppliers

Content Supplier

...

...

Storage

...

Format

You can copy and paste this code into the Confluence Source Editor:

Code Block
<p class="auto-cursor-target">
  <br/>
</p>
<ac:structured-macro ac:macro-id="9250fecf-e394-4533-aefa-737973f26698" ac:name="report-block" ac:schema-version="1">
  <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
  <ac:rich-text-body>
    <p class="auto-cursor-target">
      <br/>
    </p>
    <ac:structured-macro ac:macro-id="a8b07332-112a-468b-aa12-144feaac98f8" ac:name="content-reporter" ac:schema-version="1">
      <ac:parameter ac:name="scope">@self > children</ac:parameter>
      <ac:rich-text-body>
        <ac:structured-macro ac:macro-id="b645edb4-b2ea-4cde-a68b-11b8ad9df2f7" ac:name="text-sort" ac:schema-version="1">
          <ac:parameter ac:name="">content:title</ac:parameter>
        </ac:structured-macro>
      </ac:rich-text-body>
    </ac:structured-macro>
    <p class="auto-cursor-target">
      <br/>
    </p>
    <ac:structured-macro ac:macro-id="a7f431c4-4ce8-44c4-b231-01eb6e988daa" ac:name="report-body" ac:schema-version="1">
      <ac:rich-text-body>
        <h2>
          <ac:structured-macro ac:macro-id="0a1652b8-bff2-4543-a75e-65f24043a7fb" ac:name="report-info" ac:schema-version="1">
            <ac:parameter ac:name="link">true</ac:parameter>
            <ac:parameter ac:name="">content:title</ac:parameter>
          </ac:structured-macro>
        </h2>
        <ac:structured-macro ac:macro-id="7f427c06-26e1-476c-94ff-f48c14e1c190" ac:name="show-if" ac:schema-version="1">
          <ac:parameter ac:name="spacePermission">edit</ac:parameter>
          <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
          <ac:rich-text-body>
            <p>
              <em>(<ac:structured-macro ac:macro-id="3adaafeb-d74e-4f39-b4ac-d9e2a8908e24" ac:name="link-to" ac:schema-version="1">
                  <ac:parameter ac:name="linkText">Edit</ac:parameter>
                  <ac:parameter ac:name="">page edit</ac:parameter>
                </ac:structured-macro>)</em>
            </p>
          </ac:rich-text-body>
        </ac:structured-macro>
        <p>
          <ac:structured-macro ac:macro-id="649d8ebc-de47-4937-96ae-8a1dd9adc97a" ac:name="report-info" ac:schema-version="1">
            <ac:parameter ac:name="render">richtext</ac:parameter>
            <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
            <ac:parameter ac:name="">content:body</ac:parameter>
          </ac:structured-macro>
        </p>
      </ac:rich-text-body>
    </ac:structured-macro>
    <p class="auto-cursor-target">
      <br/>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
  <br/>
</p>
<ac:structured-macro ac:macro-id="0a6c97bc-a3ba-4fa7-bb6f-5ad1fd3438ff" ac:name="show-if" ac:schema-version="1">
  <ac:parameter ac:name="spacePermission">@self:edit</ac:parameter>
  <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
  <ac:rich-text-body>
    <p>
      <ac:structured-macro ac:macro-id="9c7e5a7f-1977-4dca-be02-626118bc427e" ac:name="add-page" ac:schema-version="1">
        <ac:parameter ac:name="parent">@self</ac:parameter>
        <ac:parameter ac:name="linkText">(+) Add a new section</ac:parameter>
      </ac:structured-macro>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
  <br/>
</p>

Expand
title Macro structure

You can recreate the example in the editor view:

...

...


Steps

  1. The format of the report will be in the form of a Report Block.

...

  1. The content Reporter is used to report children on the current page

...

  1. by setting the scope to "@self > children".

  2. Pages pulled from Content Reporter are sorted by content title via Text Sort, setting the supplier key to "content:title".

  3. Report Body is used as a container for displaying results.
    Injected is set to true so that we can inject values within the field of Link to Location macro (see step 7).

  4. Report Info displays the title of each page returned

...

  1. from the Content Reporter, setting the supplier key to "content:title".

  2. The Show If macro will only display the contained contents (see step 7) if

...

  1.  the current

...

  1. user can edit this current space by setting the Space Permissions parameter to "@self:edit" or "edit".
    This macro is from the Visibility add-on.

  2. Link to Location macro creates a link to special Confluence locations. In this case, it links to the edit page of each child page from Content Reporter. The Location parameter is set to "page edit".
    The content parameter is set to "%content:title%".
    The "%" sign indicates that the enclosed text is injected - the text within will be replaced by the value of supplier key "content:title".
    Link Text is set to "Edit".
    This macro is from the Linking add-on.

  3. The Report Info macro displays the content body

...

  1. by setting the supplier key to "content:body".

...

  1. The render parameter is set to "RichText".

  2. Same as Step 6.

  3. The Add Page page creates a link that adds a new page. The Parent parameter of this created page is the current page, i.e., "@self". The Link Text parameter is set to "(plus) Add a new section". This macro is from the Linking for Confluence Server & Data Center add-on.