summaryrefslogtreecommitdiff
path: root/docs/dev/documentation.md
blob: 16a1c9eeec8f8155093fa41df8b8a4859c3ee6cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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](https://www.stack.nl/~dimitri/doxygen/manual/docblocks.html) in C++ and C, and [restructured text blocks](http://thomas-cokelaer.info/tutorials/sphinx/docstring_python.html) 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 "Tip"
    When updating user documentation, the `mkdocs serve` feature is particularly helpful.

[contribution license agreement]: https://binary.ninja/cla.pdf
[Vector 35]: https://vector35.com/
[fix]: https://github.com/michaeljones/breathe/issues/271
[mkdocs]: http://www.mkdocs.org/
[breathe]: https://github.com/michaeljones/breathe
[sphinx]: http://www.sphinx-doc.org/en/stable/index.html
[doxygen]: http://www.stack.nl/~dimitri/doxygen/
[doxblocks]: doxygen