You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

projectdoc Toolbox

A short introduction to use heading numbers with the projectdoc Toolbox.

Audience
Type
Level of Experience

Using heading numbers with the projectdoc Toolbox for Confluence is based on the Section Macro and a couple of space properties.

This short tip shows how to use this feature.

Some features are only available since version 3.0.

Summary

Using heading numbers for sections in your projectdoc Document is very easy.

There is less easy to deal with page titles, if no tool is used to support this use case. We show and briefly discuss two approaches to get the desired result.

Prerequisites

This tip assumes that you know

  1. what a space is
  2. the basic use cases for the Section Macro
  3. how to use document properties and space properties
Contents

Use Sections

Authors need to use sections to organize content in a projectdoc Document. This is required to use the numbering feature of the projectdoc Toolbox.

The screenshot from the Confluence editor shows a section with two subsections

The subsections are contained in their parent section. The level of each section is defines as '*'. Therefore the projectdoc Toolbox will calculate the correct heading level automatically.

In order for heading numbers are shown, the numbering parameter must be activated for a section.

Shows a screenshot of the macro editor with the parameter of the Section Macro to control heading numbers

This is the default value. Therefore authors do only need to configure the macro here, if the heading numbers for the sections must not be shown. Please note that checking this checkbox only tells the projectdoc Toolbox that in case heading numbers are activated that this sections should have a number. If heading numbers are not activated, then this parameter has no effect.

Switch on Numbers on Headings

To switch on numbers on headings use the property enable-heading-numbers. This can be used as a space property or a document property.

Numbers on Space Level

When used as a space property , the numbering feature is on for all projectdoc documents in the space. When delegation is used, all spaces delegating to the space with the property set to true are also using heading numbers.

 

For more information on space hierarchies please refer to the Space Hierarchies section in projectdoc Introduction.

To use heading numbering on space level, set enable-heading-numbers to true for instance on the space homepage.

Enable space properties on space level using the space property enable-heading-numbers

Copy-and-Paste -- may be a problem!

 

The projectdoc Toolbox takes the values you enter as property names, values and controls as is. If you add HTML markup for any reason, the projectdoc Toolbox assumes that you know what you are doing. In case you copy-paste text from a page shown in your browser, there may be markup you do not want to paste. Be careful here!

For more information please have a look at Cannot access Property from a Document.

Numbers on Document Level

When used as a document property, heading numbers are only used for this document. This allows for a more fine grained control since heading numbers are not relevant for every page shown online.

Add the property enable-heading-numbers to the document.

Enable heading numbers on space level using the space property 'enable-heading-numbers'

 

This looks identical as when setting a space property on the space homepage. This implies, that heading numbers on the page homepage will activate heading numbers for all pages.

Add Number to Document Title

Authors may choose to add a heading number to the title of the document by the space property use-document-heading-number. The same property name can be used on document level. In the first case every document in a space will provide a heading number for the title, in the second case the feature is only applied to the current document.

Enable heading numbers on document titles with the space or document property 'use-document-heading-number'

Additional Control

For some use cases you may need additional control on heading numbers.

Suppress Heading Number per Doctype

If you choose to have heading numbers for all documents you have enabled the heading numbers on space level. You may not want numbers on page that have purely navigation purposes such as documents of type Space Index.

In this case use the space property suppress-heading-numbers-on-doctypes to switch off heading numbers for a selected set of document types. Per default are included in the set of documents that should not have heading numbers.

Controls to suppress heading number for all documents of type 'topic' in this space

Not that this configuration can be overruled by enabling heading numbers on a particular document using enable-heading-numbers.

Suppress Heading Number on a Section

You may not need a heading number on a section for your document. Like in the following example where the table of contents does not show the summary (and therefore does not number it).

Screenshot of a page where the Summary section has a heading number, but is not shown in the table of contents

Since the Summary section is not referenced in the table of contents (upper right side of the screenshot), the numbers differ. To align them, you either need to show the Summary section in the table of contents or suppress the heading number for the Summary.

Deselect the parameter Numbering in the macro editor for the Section Macro showing the Summary.

Shows a screenshot of the Numbering parameter is set to 'false' (unchecked)

Now the heading numbers are aligned.

Screenshot of the document with the heading number aligned

 

Note that in case you need to print the document, the summary has a numbered heading.

To prevent this issue, you may choose to not show the title and have the Description and the Summary section collapsed. Printing is then no issue since there is no heading.

Number and Level Start

In case you have a large document, like a specification or a architecture description using the arc42 Template, you may need more fine grained control of the numbering of a page.

Extracting Section

Suppose you need to extract the sections Space Relation, Providing Spaces, and Collaboration Spaces to their own documents. This way you may have easier content reuse, you may collaborate easier if each content is created by another author, any you may reference the individual sections easier if they have their own unique URL.

Let's use the Section Doctype to create a document for each of the three sections we extract and the Transclude Documents Macro to integrate them with the original document.

Screenshot of the document using transclusion to include sectionse

A section document looks like this:

The first section of the document as a separate document

Configuration of Section Documents

To create the same heading number as in the transcluding document, you need to set the number start (heading-number-start) to 1.0 and the heading starting level (heading-starting-level) to 2.

Two properties to control the heading numbers

Now the section headings align with the numbers shown in the transcluding document.

The aligned heading numbers of the first section

Only works for strict structures

 

Now the topic is closely bound to the document it is transcluding. In the case of sections this is typically okay. But you would need to update the document properties in case you alter the position of a section in the transcluding document.

There is no control in case you have a Module or a Topic since in this case the numbering would be different for each transcluding document.

The configuration for the second transcluded section requires the number start (heading-number-start) to be set to 2.0.

Configuration of document properties for the second section

The rendered document would render like this:

Screenshot of the second section in its own document

Page Title Numbering

As you may already have notices, the numbering of the section does still not align. Headings have no numbers per default.

To change this you need to apply a CSS style to your Confluence site configuration or to your space configuration. This CSS may be different according to your layout tool you employ.

Here is one way to achieve the heading numbering for the transcluding document and all its sections for a standard Confluence environment. Using a layout tool may make the issue much simpler.

Activate the HTML Macro

To add additional CSS styles you need to activate the HTML Macro provided by Confluence as a system plugin.

 

HTML macros are disabled by default

The HTML macro will only be available if it has been enabled by an administrator. Enabling these macros can make your Confluence site vulnerable to cross-site scripting attacks.

Shows the enabled HTML Macro

Option 1: Set Heading Number per Default

If you set the heading number per default, then each page will have a heading number.

Space Look and Feel

Using the Space Tools you are able to configure the CSS for a single space in Confluence.

Stylesheet configuration for the space look and feel

h1#title-text:before {  
   counter-increment: h1;  
   content: counter(h1) " ";  
}

If you use level one headings on the page, these will continue with the second number. So you would need to use only level two headings on your pages. Besides that you also have numbers where you probably do not want them as in the screenshot shown above. "Space Tools" also uses the "title-text" identifier and therefore has a heading number.

Suppress Heading Numbers on Transcluding Page

To remedy some of the issues above, use the following CSS

h1#title-text:before {  
counter-reset: h1 !important;
counter-increment: none !important;
content: "" !important;
}

with the HTML Macro.

HTML Macro with style element and CSS

Option 2: Use Custom CSS on every transcluded Page

Add the following CSS to every page you need a heading number in the title.

HTML Macro for transcluded Documents

Since you already use level 2 headings (heading-starting-level) these won't interfere with the h1 used for the title.

You do not need a configuration for the space's Look and Feel (Stylesheet).

No Stylesheet configuration required

And you won't need a special treatment for you transcluding pages.

Transcluding page with heading numbers, but not for the title.

The heading numbers are enabled (the space property is not hidden in the screenshot), therefore the sections have heading numbers. The page title is considered as the title of the document and therefore has no heading number.

Pros and Cons

If you have a dedicated space for your specification or software architecture document, option 1 may be easier to use. Mind unwanted numbering on standard pages, but otherwise you would not need to configure the section pages with an additional HTML Macro.

In every other case the second option might be easier to handle, since there are less side effects and there is only one additional HTML Macro on each document that is using a dedicated heading number.

Resources

Section Macro
Renders a section, if the body is not empty. Supports authors to create content, clutter-free rendering without empty sections. Allows to transclude the content.
Transclude Documents Macro
Renders transcluded content fetched from documents of a result set.
HTML Macro
Macro provided by Confluence to add HTML code to a page. This macro is deactivated by default because of vulnerabilities that may be exploited.
  • No labels