1. Georg Brandl
  2. sphinx-contrib


sphinx-contrib / coffeedomain /

Filename Size Date modified Message
1.8 KB
423 B

CoffeeScript Domain

Author: Stephen Sugden <glurgle@gmail.com>


This extension adds a CoffeeScript domain with autodoc support to Sphinx.

This relies on coffeedoc to extract source comments from .coffee files. To install coffeedoc globally:

npm install -g coffeedoc


First you must add the extension to your list of extensions in conf.py:

extensions = ['sphinx.ext.autodoc', 'sphinxcontrib.coffeedomain']

Because Python has no clue about where your CoffeeScript sources are located, you must tell it where to look in your conf.py like so:

coffee_src_dir = os.path.abspath('../')

Depending on the module system you use, you might want to change the coffeedoc parser from its default commonjs to requirejs:

coffee_src_parser = 'requirejs'

Finally, if your project is primarily CoffeeScript, you might want to define the primary domain as well:

primary_domain = 'coffee'

Directives and Roles

This domain provides module, function, class and method directives, as well as meth, class, and func roles for cross-referencing. In order to reference another object, use it's fully-qualified name: The module name, a double colon, and the dot separate path to the object within the module.

For example, to reference the swizzle function in the file lib/widgets.coffee, write coffeefunc:`lib/widgets::swizzle. You can drop the leading :coffee if your primary domain has been set to coffee, and you can drop the module name iff you are linking from within the lib/widgets module.


You can document entire modules easily with automodule:

.. automodule:: mymodule