Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

Robin

We're happy to announce robin, a new Doxygen/C++ to Sphinx bridge. Robin provides an easy-to-use, easy-to-hack integration of Doxygen documentation into Sphinx. Robin is licensed under the BSD and can be found at Bitbucket: https://bitbucket.org/reima/robin

Features

  • Robust extraction of Doxygen XML data via an easy-to-hack parser
  • Intermediate data is stored in a database (mongodb) for simple extraction and processing
  • Directive-driven output; each directive provides callbacks and hooks which allows for deep customization
  • Automated generation of driver ReST documents: Similar to automodule; however, robin generates actual ReST documents which can be inspected

Prerequisites

Robin expects a running mongodb on the local host. It uses a minimal set of external libraries: Pymongo, sphinx, progressbar. All of the dependencies can be easily installed using pip or easy_install.

Robin has been developed with Python 2.7; we have not tested previous versions.

Getting started

  • Run Doxygen to generate XML documentation (GENERATE_XML=YES)

  • Run extract-doxygen <path to XML> <project name>

  • Run create-rst <project name>
    • This generates several directories (classes, groups, etc.)
    • Include the groups.rst into your toc
  • Add 'robin.sphinx' to the Sphinx extensions

  • Build (make html) for TOC update

  • Build again (make clean && make html)

Status

We're using robin internally for a large C++ codebase, and there are a few minor issues left that we hope to resolve soon (all of them are tracked on Bitbucket.) After that, we expect that robin will go into "maintenance" mode focusing on bug fixes only. If someone is interested in contributing, please get in touch with us.

Cheers,
the robin developers

Recent activity

reima

Commits by reima were pushed to reima/Robin

7963bb0 - Fix breakage when template parameters without names are used (#35).
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.