The input files must have a supported format, specified with the --format option.
The .tree and .zip files are copied into monodoc's sources directory, alongside a .source file which is used by monodoc(1) to specify where the documentation should be displayed.
The .source file has the following format:
<?xml version="1.0"?> <monodoc> <node label="LABEL" name="PATH" parent="PARENT"> <node label="LABEL2" name="PATH2" /> <!-- ... --> </node> <source provider="PROVIDER" basefile="BASEFILE" path="PATH" /> <!-- other <source/> elements --> </monodoc>The /monodoc/node node is an optional node that specifies where in the monodoc tree the documentation should be displayed, and //node elements may be nested to any depth to create trees. //node/@label is the label that will be displayed within the monodoc tree.
//node/@name is the name of the monodoc tree node, and may be used as the value of the /monodoc/source/@path value.
//node/@parent is the node name to use as the parent node. $MONO_INSTALL_PREFIX/lib/monodoc/monodoc.xml contains a list of such names, and this can be any //node/@name value. If the //node/@parent value isn't found, then it's inserted under the "Various" tree node.
The /monodoc/source/@provider attribute specifies which format provider should be used when reading the .tree and .zip files; this must correspond to one of the --format values.
The /monodoc/source/@basefile attribute specifies the filename prefix for the documentation files. This must be the same prefix as used with the --out parameter. There should be no filename extension on this value.
The /monodoc/source/@path attribute specifies the parent node in monodoc(1)'s tree view where the documentation will be inserted. See the $MONO_INSTALL_PREFIX/lib/monodoc/monodoc.xml file for a list of PATH values (the //node/@name values), or it may be a //node/@name value in the same .source file.
Once the BASEFILE.source has been written, the documentation can be installed so that monodoc(1) will display the documentation with the command:
cp BASEFILE.source BASEFILE.tree BASEFILE.zip \ `pkg-config monodoc --variable=sourcesdir`
See the FORMATS section below for more information about these formats.
The default format (if none is specifed) is ecma.
The --format option may be interleaved with PATHS to change the format used for the remaining parameters (until the next --format option is seen), e.g.:
mdoc assemble -o PREFIX A B --format=man C D --format=xhtml Ewill assemble directories A and B with the ecma format, files C and D with the man formt, and directory E with the xhtml format.
See the mdoc(5) man page for more information.
In this format, PATHS is a configuration file, containing the XML:
<ErrorProviderConfig> <FilesPath>../../mcs/errors</FilesPath> <Match>cs????*.cs</Match> <ErrorNumSubstringStart>2</ErrorNumSubstringStart> <ErrorNumSubstringLength>4</ErrorNumSubstringLength> <FriendlyFormatString>CS{0:0###}</FriendlyFormatString> </ErrorProviderConfig>The elements mean:
For each file found, it is converted to HTML with C# syntax coloring applied.
PATHS is a set of XML files containing:
<?xml version="1.0"?> <manpages> <manpage name="NAME" page="FILE" /> </manpages>There may be multiple //manpage elements within the root /manpage element.
The /manpages/manpage/@name attribute contains the display name for the tree view node, which is also the URL of the man page when using monodoc(1)'s Lookup URL command (before prefixing with a man: prefix). Thus, if /manpages/manpage/@name contains mono(1), then man:mono(1) can be used in the Lookup URL command to view the mono(1) man page.
The /manpages/manpage/@page attribute is the filename that contains the man page. If this file does not exist, then /manpages/manpage/@name will not be displayed within the tree view.