Table of Content Zone Macro
You can use the Table of Content Zone macro to mark out a section (zone) within the page from which to create a table of contents. You can style the headings as a flat list, and place the list of links at the top and bottom of the section or page, to provide navigation bars similar to web navigation.
Using the Table of Content Zone macro
To add the Table of Content Zone macro to a page:
- In the Confluence editor, choose Insert > Other Macros
- Find and select the required macro
Speeding up macro entry with autocomplete: Type { and the beginning of the macro name, to see a list of suggested macros. Details are in Autocomplete for links, files, macros and mentions.
To edit an existing macro: Click the macro placeholder and choose Edit. A macro dialog window will open, where you can edit the parameters of the macro.
Parameters
Parameters are options that you can set to control the content or format of the macro output. Where the parameter name used in Confluence storage format or wikimarkup is different to the label used in the macro browser, it will be listed below in brackets (example
).
Parameter | Default | Description |
---|---|---|
location | both | Specifies where in the zone the output list is displayed: top, bottom, or both, which encloses the page zone content. |
Output Type | list | Specifies the layout for the table of contents:
|
Display Section Numbering | false | Select to apply outline numbering to your headings, for example: 1.1, 1.2, 1.3. |
List Style | none | Specifies the style of bullet point for each list item. You can use any valid CSS style. For example:
|
Heading Indent |
| Sets the indent for a list output type, according to CSS quantities. Entering "10px" will successively indent list heading levels by 10px. For example, h1 headings will be indented 10px and h2 headings will be indented an additional 10px. |
Separator | brackets | Only applies to the flat output type. Specifies the display style of the links. You can enter any of the following values:
|
Minimum Heading Level | 1 | Select the largest heading level to start your TOC list. For example, 2 will list h2, h3, and h4 headings, but will not include h1 headings. |
Max Heading Level | 7 | Select the smallest heading level to include in the TOC. For example, 2 will list h1 and h2, but will not include h3 and below. |
Include Headings |
| Filter the included headings according to specific criteria. You can use wildcard characters. See Sun's Regex documentation for examples of constructing regular expression strings. |
Exclude Headings |
| Exclude headings according to specific criteria. You can use wildcard characters. See Sun's Regex documentation for examples of constructing regular expression strings. |
Printable | true | By default, the TOC is set to print. If you clear this parameter, the TOC will not be visible when you print the page. |
CSS Class Name |
| If you have a custom TOC in your CSS style sheet, you can use this parameter to output the TOC with the specified "class" attribute. |
Examples
The examples are based on a page with the following headings:
Filtered Table of Contents
This example will filter all headings to include those that contain "Favourite", but will exclude any heading which ends with the word "Things". The list is styled with upper-case Roman numerals.
Parameter | Value |
---|---|
Output Type | list |
List Style | upper-roman |
Include Headings |
|
Exclude Headings | .*Things |
Screenshot: Filtered TOC 'zone' headings
Flat List
This example will filter all headings to render a flat list of "Unknowns" enclosed in square brackets.
Parameter | Value |
---|---|
Output Type | flat |
Separator | brackets |
Max Heading Level | 2 |
Include Headings | Unknown.* |
Screenshot: Filtered TOC 'zone' headings displayed as a flat list
Notes
- Due to an outstanding issue in the Table of Content Zone macro (CONF-10619), the Macro Browser's Refresh function does not render any parameter modifications. Currently, the rendering of parameter value modifications to the Table of Content Zone macro occurs only after the page is saved.
Using HTML heading markup with the Table of Content Zone macro — The Table of Content Zone macro cannot handle HTML heading markup on its own. Hence, if you used the HTML and HTML Include macros to render HTML heading markup in a Confluence page, the Table of Content Zone macro will not create a contents list out of these headings. (For more information on about this issue, please refer to TOC-93.)
However, if you insert an HTML anchor into each HTML heading on your page (based on the following syntax), the Table of Content Zone macro will incorporate these headings into your contents list.<h2><a name="pagename-headingname"></a>Heading Name</h2>
The syntax for the anchor name is the page name and heading name separated by a hyphen. Remove all spaces and convert all text to lower case. Convert all punctuation marks to their URL-encoded equivalent.
Code examples
The following examples are provided for advanced users who want to inspect or edit the underlying markup for a Confluence page.
Macro name: toc-zone
Macro body: Accepts rich text.
Storage format example
<ac:structured-macro ac:name="toc-zone">
<ac:parameter ac:name="printable">false</ac:parameter>
<ac:parameter ac:name="maxLevel">2</ac:parameter>
<ac:parameter ac:name="minLevel">2</ac:parameter>
<ac:parameter ac:name="location">top</ac:parameter>
<ac:parameter ac:name="type">flat</ac:parameter>
<ac:parameter ac:name="outline">true</ac:parameter>
<ac:parameter ac:name="separator">pipe</ac:parameter>
<ac:rich-text-body>
<p>Only headings within this block are included in the table of contents.</p>
</ac:rich-text-body>
</ac:structured-macro>
Wiki markup example
{toc-zone:printable=false|maxLevel=2|minLevel=2|location=top|type=flat|outline=true|separator=pipe}
Only headings within this block are included in the table of contents.
{toc-zone}