In this post, we’re going to look at one of my favourite macros the ‘include page‘ macro

What can this macro do for us? the include page macro is super powerful, it allows you to take a page in somewhere in the space or even in another space, then surface that content within another page. Think of it as iFraming one page into another. The macro allows you to build out sophisticated page layouts.

Where I have found this particularly useful is when you have content that you regularly update on one page, yet need to surface that same information on another page. Instead of having to repeat yourself you can use this simple tactic, mitigating human error due to duplication of work.

In this tutorial, we’re going to suppose that we have a high-level timings page for a project and that we need to show these timings on a separate programme status page.
Traditionally you may have had two independent pages, one for the project and one for the programme status page. However, you’d need to keep them both in sync. That means if a date shifts on the project then you’ll need to update the date in two places. This may lead to human error and miscommunication of project timings. A better approach would be to use the Include page macro and include the project timings page in the programme status page. That way, when you update the timings on the project page, the updates will be shown on the programme status page. Let’s do just that!

Here’s the end result, a programme status page that pulls in the external project timings page.

light-many-fires-confluence-include-macro-result

Below we have a programme status page and we wish to include the project timings in the section highlighted in red.

light-many-fires-confluence-include-page-macro-programme-status

Here is the separate project timings page that we want to include into the programme status page above.

light-many-fires-confluence-include-page-macro-project-timings

Go into edit mode for the page you want to include the external page and pull up the macro’s dialogue screen.light-many-fires-confluence-include-page-macro-open-macros

From the macro’s dialogue search for “include page” then select the macro.

light-many-fires-confluence-include-page-macro-find-macro

Start typing the title of the page you’d like to include, you should see the page title in the predictive search results. Once it becomes visible, select it.

light-many-fires-confluence-include-page-add-page

To ensure that you have the correct page, click on the preview option. Once you’ve confirmed that you have selected the correct page hit “insert”

light-many-fires-confluence-include-preview-page

You should now see the macro displayed within your page. Now hit save.

light-many-fires-confluence-include-macro-added

We have now arrived at our desired result. Pretty easy! Now every time we make a change in the project timings page, it will be reflected in the programme status page.

light-many-fires-confluence-include-macro-result

Pro Tip: You’re not constrained to only pull in one page using this macro. By using the include page macro multiple times you can build up comprehensive pages. For example, you could build up a project status page using a configuration as seen below.

light-many-fires-confluence-include-macro-build-complex-pages

As always, I hope you found this post useful. If you have any friends or colleagues that would also enjoy this article, please share it with them!

If you have any questions or comments, please leave them in the comments section below. I’ll get back to you as soon as I can.

Liam

Get quick Confluence tips straight to your inbox

Posted by Liam Holmes

  • Chad Loder

    Liam,

    Excellent article! I’d pretty much invented the exact same scheme using the exact same macros in Confluence before I found this blog post. You’ve given me some good ideas on how to do things a bit better, so thanks for that.

    Here’s a question for you: do you know how to include one excerpt from ONE page dynamically chosen from a list of pages? The use case is to have a “Next meeting” field on the summary page, where the value of the field is dynamically excerpted from the *most recent* child page having the label “meeting-notes”. Sort of like the Page Properties Report macro but just one cell value with no headers. Does that make sense? Have not found a way to do this with the common Confluence plugins.