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.
- 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
- Add GENERATE_XML=YESto yourDoxyfilefirst.
- Run doxygento generate the XML documentation.
- Install moxygenlike so:npm install moxygen -g.
- Run moxygenproviding the folder location of the XML documentation as the first argument ie.{OUTPUT_DIRECTORY}/xml.
Usage: moxygen [options] <doxygen XML directory>
Options:
  -V, --version          output the version number
  -o, --output <file>    output file, must contain "%s" when using `groups` or `classes`
  -g, --groups           output doxygen groups into separate files
  -c, --classes          output doxygen classes into separate files
  -p, --pages            output doxygen pages into separate files
  -n, --noindex          disable generation of the index, ignored with `groups` or `classes`
  -a, --anchors          add anchors to internal links
  -H, --html-anchors     add html anchors to internal links
  -l, --language <lang>  programming language
  -t, --templates <dir>  custom templates directory
  -L, --logfile [file]   output log messages to file
  -q, --quiet            quiet mode
  -h, --help             output usage information
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
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 Doxyfilefile (for doxygen 1.8.13)
- Pre-generated XML output in example/xml
- Pre-generated output Markdown files in example/doc
To fully build the example, follow these steps (once you've installed doxygen. See Development & Contribution, below):
- Rebuild the XML: run doxygenfrom within the example folder.
- Rebuild the Moxygen output: from within this directory,
node bin/moxygen.js --groups --pages --anchors --output=example/doc/api-%s.md example/xml
You can develop this project as you would any other Node project:
- Clone this repo.
- npm installfrom this directory.
This project is tested through integration, by building the example/. To quickly test this project:
- Install doxygen(brew install doxygen,choco install doxygen, for example). Only must be done once per computer.
- npm testfrom this directory. This will run Doxygen on the- example/and build the output.