Tags can be categorized into 3 groups, based on how they treat their parameters:
Simple tags that do not take any parameters (e.g. @nil or @name). Pasdoc will show a warning if you try to pass parameters to such tags.
Tags that take their parameters and expand tags inside them too, recursively. This means that inside these parameters @-tags are expanded, whitespaces do not matter, an empty line means "start new paragraph" etc. (see WritingDocumentation). This also means that inside the parameters you must write @@ to get one @ in the output.
Example of using such recursive tag @raises:
1 { @raises(EMyException 2 when global variable @link(FailWithException) 3 is set to true.) } 4 procedure MyProcedure(A: Integer);
- Tags that take some parameters but do not expand them. These are very exceptional tags, serving a special purpose and their parameters have a special meaning. Tags belonging to this group are:
@html tag: parameter of it must be valid HTML markup, and will be copied verbatim to the HTML output
@latex tag: parameter is valid LaTeX markup
@link tag: parameter is an existing Pascal item identifier
@longcode tag: parameter of it is interpreted as a Pascal source code.
When using these tags you should note that inside their parameters @-tags are not expanded, whitespace is not interpreted in any special way (e.g. empty lines are not converted to paragraphs) etc. This also means that the @ character is not special, and you do not have to (in fact, you cannot) double it if you want a single @ in the output.