CoffeeDoc is a simple API documentation generator for CoffeeScript. It
reads python-style docstrings in your CoffeeScript class and function
definitions, passes them through
Markdown, and outputs the
result as easy to read HTML.

CoffeeDoc is inspired by the excellent Docco, and is intended for projects
that require more structured API documentation.

The docstring convention CoffeeDoc uses is inspired by Python, and looks like
this:

###

# CoffeeDoc example documentation #

This is a module-level docstring, and will be displayed at the top of the module documentation.

As using a sequence of 3 or more # characters within a CoffeeScript block
comment would end the comment block, CoffeeDoc allows for the \# escape
sequence in docstrings. So instead of ### Header, use \#\#\# Header or
##\# Header. Ugly, but it works.

CoffeeDoc uses the CoffeeScript parser to generate a parse tree for the given
source files. It then extracts the relevant information from the parse tree:
class and function names, class member functions, function argument lists and
docstrings.

Docstrings are defined as the first herecomment block following the class or
function definition. Note that regular single line comments will be ignored.
Docstrings are passed through Showdown, a javascript port of Markdown
(CoffeeDoc uses jashkenas' modified version of Showdown used in Docco).

The resulting documentation information is then passed to an eco template
to generate the html output.