---
name: "mdassembler"
section: "1"
platform: "linux"
package: "mono"
version: "6.12.0.206-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/mdassembler"
---

# mdassembler(1)

Compile documentation for use in monodoc browser

## NAME

mdassembler - Compile documentation for use in monodoc browser

## SYNOPSIS

**mdassembler** OPTIONS\* DIRS+

## DESCRIPTION

*mdassembler* has been obsoleted by [**mdoc**(1)](/mdoc/1.md).  See the [**mdoc-assemble**(1)](/mdoc-assemble/1.md) man page.

*mdassembler* is a program that creates  *.tree* and  *.zip* files for use in the **monodoc** documentation browser.

The  *.tree* and *.zip* files are copied into monodoc's  *sources* directory, and reside with a  *.source* file which is used by  **monodoc** to specify where the documentation should be displayed. The  *.source* file's  */monodoc/source/@basefile* attribute specifies the filename prefix for the documentation files.  This must be the same prefix as used with the  **--out** parameter.

## OPTIONS

- *--ecma*

  The documentation found within  *DIRS* is in the Mono ECMA documentation format. See the  **Mono ECMA Documentation Format** section below.

- *--ecmaspec*

  The documentation found within  *DIRS* is in the ECMA Specification documentation format. See the  **Mono ECMA Specification Documentation Format** section below.

- *--error*

  The documentation found within *DIRS* is in "error" format. See the  **Error Documentation Format** section below.

- *--help*

  Show program argument information.

- *--man*

  The documentation found within *DIRS* is in man page format. See the  **Man Page Documentation Format** section below.

- *-o, --out PREFIX*

  Specify the output file prefix. **mdassembler** creates the files *PREFIX.zip* and  *PREFIX.tree* .

- *--simple*

  The documentation found within *DIRS* is in "simple" format. See the  **Simple Documentation Format** section below.

- *--xhtml, --hb*

  The documentation found within *DIRS* is in XHTML format. See the  **XHTML Documentation Format** section below.

## FORMATS

The following documentation formats are supported:

### Mono ECMA Documentation Format

An XML documentation format with one file per type.

See the [**mdoc**(5)](/mdoc/5.md) man page for more information.

### Mono ECMA Specification Documentation Format

This is not the format you're looking for.

This is the format used to represent the ECMA-334 (C#) standard within  **monodoc**.  It is not used to display class library documentation;  for class library documentation, use the **--ecma** format.

### Error Documentation Format

Used to present detailed error messages, and is used in  **monodoc**'s "C# Compiler Error Reference" tree.   *DIRS* is not a directory, but is instead 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>
```

*/ErrorProviderConfig/FilesPath* specifies where to look for files, */ErrorProviderConfig/Match* specifies the filename pattern to look for within  */ErrorProviderConfig/FilesPath*, */ErrorProviderConfig/ErrorNumSubstringStart* and */ErrorProviderConfig/ErrorNumSubstringLength* control which portion of the filename is used as the error number, and */ErrorProviderConfig/FriendlyFormatString* controls how the formatting/display of the node in the  **monodoc** tree.

For each file found, it is converted to HTML with C# syntax coloring applied.

### Simple Documentation Format

Converts text files into HTML by translating each newline into an HTML *\<br\>* element.

### Man Page Documentation Format

Converts man pages into HTML for display.

### XHTML Documentation Format

Copies the XHTML file as-is.

## EXAMPLES

To install your documenation for use with monodoc:

- *Create a PREFIX.source file*

  with the contents:

  ```
  <?xml version="1.0"?>
  <monodoc>
    <source provider="FORMAT" basefile="PREFIX" path="PATH"/>
  </monodoc>
  ```

  where FORMAT is the documentation format contained within the  *PREFIX.tree* file, e.g.  *ecma*, or *simple*. *PREFIX is the basename of the* *.tree* and *.zip* files that  **mdassembler** creates. *PATH* is the "path" in the monodoc tree that should contain the documentation. See the  *@prefix@/lib/monodoc/monodoc.xml* file for a list of PATH values (the *//node/@name* values).

  See also: http://www.mono-project.com/docs/tools+libraries/tools/monodoc/generating-documentation/

- *Create your documentation*

  See also the [**monodocer**(1)](/monodocer/1.md) man page, e.g.

  ```
  	monodocer -assembly:foo.dll -path:foo/en
  ```

- *Assemble the documentation*

  ```
  	mdassembler --ecma foo/en PREFIX
  ```

  Make sure that you use the same *PREFIX* here as you did above.

- *Install the documentation by using the command*

  ```
  	cp PREFIX.source PREFIX.tree PREFIX.zip \
  	`pkg-config monodoc --variable=sourcesdir`
  ```

  (Note the backticks used in the  **pkg-config** command!) This copies the *.source* , *.tree* , and  *.zip* files into the  **monodoc** *sources* directory, which will allow **monodoc** to display the documentation.

## SEE ALSO

[**mdcs2ecma**(1)](/mdcs2ecma/1.md),  [**mdnormalizer**(1)](/mdnormalizer/1.md),  [**mdoc**(1)](/mdoc/1.md),  [**mdoc-assemble**(1)](/mdoc-assemble/1.md),  [**mdvalidator**(1)](/mdvalidator/1.md),  [**monodocer**(1)](/monodocer/1.md),  [**monodocs2html**(1)](/monodocs2html/1.md)

## MAILING LISTS

- Visit http://lists.ximian.com/mailman/listinfo/mono-docs-list for details.

  ## WEB SITE

See also: http://www.mono-project.com and http://www.mono-project.com/docs/tools+libraries/tools/mdassembler/
