Writing Module Documentation

Markdown

Icinga Web 2 is capable of viewing your module’s documentation, if the documentation is written in Markdown. Please refer to Markdown Syntax Documentation for Markdown’s formatting syntax.

Where to Put Module Documentation?

By default, your module’s Markdown documentation files must be placed in the doc directory beneath your module’s root directory, e.g.:

example-module/doc

Chapters

Each Markdown documentation file represents a chapter of your module’s documentation. The first found heading inside each file is the chapter’s title. The order of chapters is based on the case insensitive “Natural Order” of your files’ names. Natural Order means that the file names are ordered in the way which seems natural to humans. It is best practice to prefix Markdown documentation file names with numbers to ensure that they appear in the correct order, e.g.:

01-About.md
02-Installation.md
03-Configuration.md

Table Of Contents

The table of contents for your module’s documentation is auto-generated based on all found headings inside each Markdown documentation file.

Linking Between Headings

For linking between headings, place an anchor after the text where you want to link to, e.g.:

# Heading <a id="heading"></a> Heading

Please note that anchors have to be unique across all your Markdown documentation files.

Now you can reference the anchor either in the same or in another Markdown documentation file, e.g.:

This is a link to [Heading](#heading).

Other tools support linking between headings by giving the filename plus the anchor to link to, e.g.:

This is a link to [About/Heading](01-About.md#heading)

This syntax is also supported in Icinga Web 2.

Including Images

Images must placed in the doc directory beneath your module’s root directory, e.g.:

/path/to/icingaweb2/modules/example-module/doc/img/example.png

Note that the img sub directory is not mandatory but good for organizing your directory structure.

Module images can be accessed using the following URL:

{baseURL}/doc/module/{moduleName}/image/{image} e.g. icingaweb2/doc/module/example-module/image/img/example.png

Markdown’s image syntax is very similar to Markdown’s link syntax, but prefixed with an exclamation mark, e.g.:

![Alt text](http://path/to/img.png "Optional Title")

URLs to images inside your Markdown documentation files must be specified without the base URL, e.g.:

![Example](img/example.png)