Doxer
Introduction
Doxer is a software documentation system which includes multiple utilities and modules to generate, process and integrate documentation and source code.
Doxer can be used in multiple ways:
-
Doxer Markup Parser
Doxer includes a robust wiki markup parser, tailored to provide a very good support for source code documentation. Currently, a backend is provided to generate XHtml from the markup parse tree. -
Inline Documentation Processing
Doxer can parse source code such as .c, .h, .cc and .hh files, extract descriptions from inline comments and generate documentation from these. Currently, the resulting documentation can be generated in XHtml. -
Drupal Input Format Module
Doxer includes a "Doxer Markup" input format module for Drupal. This allows use of the Doxer wiki markup format as input syntax for Drupal pages.
Doxer Markup Parser
Doxer implements a robust state based wiki markup parser that supports markup elements for links, lists, tables, justification, font styles and paragraphs. Once parsed, Doxer generates valid XHtml from the parsed content, regardless of what markup errors where encountered in the input. Example usage via the command line:
doxer.py markup2xhtml inputmarkup.txt >output.html doxer.py markup2xhtml --no-css inputmarkup.txt >output.html # excludes embedded CSS
Inline Documentation Processing
Doxer extracts inline comments from source code files. Currently, the extraction front end is based on Doxygen (using Doxygen XML generation). The markup supported for inline documentation is Doxer Markup. The (rewritten) documentation extractor is still in its infancy, so no command line example can be provided at the moment.
Drupal Input Format Module
To use the Doxer input format module, the Doxer source tree needs to be extracted as drupal/sites/all/modules/doxer/ configured and built. After this, the "Doxer Markup" module can be enabled in the Drupal admin interface which provides the "Doxer Markup" input format filter. The input format filter allows specification of relative URL schemes to support e.g. shorthand wiki URLs.
Markup Elements
Tables
The table markup was designed mimicking elements from the Mediawiki table markup. Tables start with {| and end with |}. Captions are separated with |+ and rows are separated with |-.
History
Around 2007, the Beast project searched for a suitable wiki format parser and Html generator, to unify the markup used for the project documentation in different media. Many commonly used wiki parsers where evaluated, but none was found to provide an appropriate mixture of robustness (non-coders should be able to use the wiki syntax without needing prior knowledge about concepts like tag nesting) and documentation related markup features. Resultingly, the Doxer Markup parser was written, accompanied by an extensive test suite which allowed incremental extensions according to broadening use cases.
