Powerful tool to generate documentation (exact requirements included)

976 views Asked by At

Short version

We need a Maven Doxia alternative being able to generate good looking PDFs (at least code snippets should be properly indented and have configurable font size). Maven guys proposed maven-pdf-plugin in DOXIA-419, but it has same problems. Aforementioned DOXIA-419 has details on difficulties we've experienced with Doxia.

Detailed version

We develop a BIG product providing Java/C/C++/C#/etc API. Tens of client-customized branches are maintained/developed simultaneously. We need a tool to facilitate automatic document generation meeting these requirements:

  1. Include arbitrary snippets from Java/XML/etc samples. Confluence Snippet Plugin is a good example of this feature.

  2. Generate good looking printable documents (e.g. PDF).

  3. Generate online documents having clickable cross-references etc (e.g. HTML).

  4. Unattended mode (e.g. should be easy to run document generation process from Ant script).

  5. Documentation source content (from which PDFs/etc are later generated) should be kept in a human-readable easy-to-diff format.

  6. Documentation source content should be kept in separate files (not Java sources).

  7. Support (Java/xml/etc) syntax highlighting.

UPDATE: 8. Windows OS compatibility.

1

There are 1 answers

2
ananelson On

My open source project Dexy might work for you. It's an authoring tool rather than an automatic document-generation tool, so it's not like JavaDoc which creates a whole structure automatically. Source code and document content are kept separate, syntax highlighting support is very good, document snippets are available. I use LaTeX for good looking printable documents, but you could use any other text-based format that compiled to PDF if you preferred that. Re the clickable cross references, you'd have to write HTML templates which could then be populated automatically (I'm doing so now, replacing JavaDoc on a project). You can also run live code examples and include this output in your documentation.

http://dexy.it