MGL-PAX is a documentation system, browser, generator.

What if documentation really lived in the code?

Docstrings are already there. If some narrative glued them together, we'd be able develop and explore the code along with the documentation due to their physical proximity. The main tool that PAX provides for this is defsection:

(defsection @foo-random-manual (:title "Foo Random manual") "Foo Random is a random number generator library." (foo-random-state class) (uniform-random function) (@foo-random-examples section))
Like this one, sections can have docstrings and references to definitions (e.g. (uniform-random function)). These docstrings and references are the glue. To support interactive development, PAX
  • makes SLIME's M-. work with references and
  • adds a documentation browser.
PAX is literate programming turned inside out: the documentation lives in the code, and the interactive development workflow is unchanged.


Documentation is at

License: MIT

Topics: document preparation Documentation Tool