Moxygen
Moxygen is a Doxygen XML to Markdown converter for C++ developers who want a minimal and beautiful solution for documentating their projects.
Moxygen is currently used in conjunction with GitBook to generate the API documentation for LibSourcey.
Features
- Multi page output: Output single or multiple files
- Internal linking: Anchors in comments and function definitions are supported
- Markdown comments: Markdown in Doxygen comments are rendered
- Doxygen groups: Doxygen grouping is supported for more organised documentation
- Custom templates: Modify the core Markdown templates to add your own flavour
- Optional index: Optionally render a top level index
Usage
- Add
GENERATE_XML=YES
to yourDoxyfile
first. - Run
doxygen
to generate the XML documentation. - Install
moxygen
like so:npm install moxygen -g
. - Run
moxygen
providing the folder location of the XML documentation as the first argument ie.{OUTPUT_DIRECTORY}/xml
.
Usage: moxygen [options] <doxygen directory>
Options:
-h, --help output usage information
-V, --version output the version number
-o, --output <file> output file (must contain %s when using groups)
-g, --groups output doxygen groups into separate files
-c, --classes output doxygen classes into separate files
-n, --noindex disable generation of the index (no effect with `groups` option
-a, --anchors add anchors to internal links
-l, --language <lang> programming language
-t, --templates <dir> custom templates directory
-q, --quiet quiet mode
Multi-page Output
Moxygen supports the doxygen groups syntax for generating multi page documentation. Every \defgroup in your source code will be parsed and output into a separate markdown file, with internal reference updated accordingly.
Example:
moxygen --anchors --groups --output api-%s.md /path/to/doxygen/xml
Example
To get a feel for how Moxygen works you can play with the example which is located in the example folder. The example contains:
- Documented C++ example code
- A
Doxyfile
file (for doxygen 1.8.13) - Pre-generated XML output in example/xml
- Pre-generated output Markdown files in example/doc
The rebuild the example XML you can run doxygen
from within the example folder.
Now you can build the example documentation with the following command from within the example folder:
moxygen --anchors --groups --output=example/doc/api-%s.md example/xml