This parameter duplicates the functionality of the `-tag` option supported by the Standard Doclet.

It allows you to include in the generated output the documentation of your custom tags, specify the tag headings as well as their ordering. You will be able also to redefine the headings and ordering of the standard tags (such as @param, @see, @author etc).

This parameter accepts multiple (list) value. Each value item specifies how a single tag should be documented.

## Specifying Single Tag

Documenting of a single tag is specified with the following expression:

  `tagname:Xaoptcmf:taghead`

The `tagname` is the name of the tag for which this setting applies. The `taghead` is the heading for the tag documentation. Omitting `taghead` causes `tagname` to be used as the heading (unless this is a standard tag). If the tag has no text (specified in the Java comment), only the heading will appear in the generated output.

The`Xaoptcmf` part determines the locations in the source code where the tag is to be processed/documented. Each letter specify possible tag locations according to this table:

Letter | Meaning / Location
`X` | Rather than including the tag, this letter indicates that the tag should be ignored in the specified locations. For example, specifying `see:X` will suppress documenting of all `@see` tags. However, `see:Xf` suppresses `@see` tags only for fields.
`a` | all locations
`o` | project overview
`p` | packages overviews
`t` | types (that is classes and interfaces)
`c` | constructors
`m` | methods
`f` | fields

Examples:

The following parameter value item:

  `threadsafe:a:Can be called safely from multiple threads`

specifies a custom `@threadsafe` tag to be documented anywhere it is used with the heading message:

  Can be called safely from multiple threads

The following value item specifies that `@todo` tag should be processed only with constructors, methods and fields:

  `todo:cmf:To Do:`

Notice the last colon (:) above is not a separator, but is part of the heading text (as shown below). You would use either tag option for source code that contains the tag @todo, such as:

  `@todo The documentation for this method needs work.`

This line would produce output something like:

  To Do:

  > The documentation for this method needs work.

Use of Colon in Tag Name

A colon can be used in a tag name if it is escaped with a backslash. For this doc comment:

>     /**
>      * @ejb:bean
>      */

use the following setting of the parameter value:

>     ejb\:bean:a:EJB Bean:

## Specifying Multiple Tags

Documenting of different tags should be specified in different items of the whole parameter value. Each value item should define how to document a single tag as described above. The items must be separated with one of the allowed item separator characters (`newline` or `';'`).

Example:

      ejb\:bean:a:EJB Bean:
      todo:cmf:To Do:

or the same as a single line:

      ejb\:bean:a:EJB Bean:;todo:cmf:To Do:

The last form can be used to specify both tags on the Javadoc command line:

  `-p:include.tag.custom "ejb\:bean:a:EJB Bean:;todo:cmf:To Do:"`

(Note: Because the full parameter value here contains spaces, it is enclosed in quotes in order to make it treated as a single command-line argument.)

The same can be also specified with two `-p` options:

  `-p:include.tag.custom "ejb\:bean:a:EJB Bean:" -p:include.tag.custom "todo:cmf:To Do:"`

Each `-p` option adds a separate value item to `'include.tag.custom'` parameter.

Tag Ordering

The tags will appear in the output documentation in the same order as they are specified in the value items of this parameter. For instance, in the example above, the documentation of `'@ejb:bean'` tag will be followed by the documentation of `'@todo'` tag.

Using this parameter, you can also redefine the ordering of the standard tags, for example:

  `version;todo:cmf:To Do:;see`

This setting says that @version tag should be documented before the custom @todo tag followed by the documentation of @see tags.

Any other standard tags will be documented as usual in a certain some predefined order before the tags specified in this parameter.

## Using Escapes

Each character that serves as a value item separator can be equally used within the value items if escaped with a backslash. For example, documenting of the tag:

  `@my;odd;tag`

can be specified like this:

  `my\;odd\;tag:a:My odd tag:`

If a backslash is not consumed by an escape it will be remained in the text as is. To make sure that a backslash is not part of some escape, you may add another backslash. A sequence of two backslashes (`"\\"`) is an escape by itself, which represents a single backslash. This is important because backslashes may be used also in a secondary system of escapes (e.g. to escape `':'` within the tag name).

For example, a string like this:

  `my\;odd\;tag:a:\My Odd Title:\\;ejb\:bean:a:EJB Bean:`

will be initially processed and broken into two value items:

      my;odd;tag:a:\My Odd Title\
      ejb\:bean:a:EJB Bean:

then, processed further to document all `'@my;odd;tag'` tags with "\My Odd Title\" title and all `'@ejb:bean'` tags with "EJB Bean:" title.