# Building Documentation

## CLA

To contribute to the Binary Ninja documentation, first sign the contribution license agreement and send it to Vector 35.

## Prerequisites

- sphinx
- breathe (note that on windows, breathe needs a small fix)
- mkdocs
- doxygen

## Building

    git clone https://github.com/Vector35/binaryninja-api/
    cd binaryninja-api
    cd api
    mkdocs build
    echo User documentation available in site/
    cd api-docs
    make html
    echo API documentation available in build/html

## Changing

Changing documentation for the API itself is fairly straight forward. Use doxygen style comment blocks in C++ and C, and restructured text blocks for python for the source. The user documentation is located in the `api/docs/` folder and the API documentation is generated from the config in the `api/api-docs` folder.

Tip

When updating user documentation, the `mkdoc serve` feature is particularly helpful.

(cc) Vector 35 LLC