Coda Home Page

the Code Documentation Application
maintained by Agnar Renolen (agnar@organizer.net)

CONTENTS

WHAT IS CODA?
EXAMPLE OUTPUT
RUNNING AND CUSTOMIZING CODA
OLD VERSIONS OF CODA
CONTRIBUTING TO CODA
TIPS ON WRITING API DOCUMENTATION
DOWNLOAD

WHAT IS CODA?

A coda is a passage that completes a piece of music. Likewise, the Coda code documentation application is a tool that completes the development of software: When the software is ready for release, it is time to produce the documentation.

Coda is a docifier similar to javadoc. The main difference is that coda provides an easier text format that doesn't clutter your comments with markup tags that obscures the real contents of the text. After all, you should be able to read and update the comments in the source code as well.

Morover, coda is also designed to extract doc-comments from several programming languages and output them into several formats. Currently, output in HTML and LaTeX has been implemented. Unix man page format (nroff/troff) and windows help is on the wish list. On the output side, coda commes with built-in support for text files (in pure CodaText format), C/Java, Pascal, Tcl/Perl, Lisp and Visual Basic, but will be customizable to almost any format that allows one of two types of formatting comments. The price to pay for this flexibility, is that coda ignores the real source code (which is in contrast to javadoc, which also extracts the declarations from the java source).

Coda is free open source software, copylefted by me under the GPL license. You can download coda for free at the bottom of this page.

EXAMPLE OUTPUT

To give you an indication of the output that coda generates, we provide the result of coda run on its own source files. The html version is the direct output of coda, while the latex version is provided as PDF, generated using first latex and then dvipdfm (from miktex).

RUNNING AND CUSTOMIZING CODA

Coda comes in two versions, a command line version named coda, and a front end user interface named wcoda. Coda is also customizable to accept more types of input formats, and even output formats. You should consult the manual on these matters.

OLD VERSIONS OF CODA

There is a version 1 of Coda which was released some time ago, but it only supports tcl/perl, and output in html. Moreover, a new text format was designed for the new version of coda, which is not be backward compatible.

CONTRIBUTING TO CODA

I've included the project into SourceForge.net. You should visit the Coda Admin Pages at SourceForge if you want to submit a Bug Report or a Feature Request.

If you want to contribute more actively, you may read the CodaText format specification and the Coda2 Design specification. If you are interested in contributing to Coda2, please send me an email. The source code is stored in CVS repository. You can click on the sourceforge icon below to go to the coda admin pages.

SourceForge Logo

TIPS ON WRITING API DOCUMENTATION

Here are some resources providing general guidelines and tips on writing documentation.

Javadoc Style Guide
Quite Javadoc specific, but useful also for Coda.
Apple Publications Style Guide
This is very useful resource. It contains a glossary of recommended terminology and a small, and a very useful appendix on Technical Notation and Units of Measure. I've had problems downloading it from MSIE, but Netscape works.
nroff\/troff formatting with Macro Packages
This is a chapter in the Internet version of "UNIX unleashed". It contains some useful information on writing UNIX man pages. For example, which section names you should use.

DOWNLOAD

The latest stable release is version 2.1. You can choose between two packages (which both provides documentation):

coda-<releaseNo>.tgz
This archive contains two tcl-scripts (coda and wcoda) which is set up to run in a unix/linux environment. The scripts have been generated from the original source files using TclMerge.
coda-<releaseNo>.zip
This archive contains two executables (coda.exe and wcoda.exe) for the windows operating system, which are generated using freeWrap.

in file: "index.txt"