Sphinx is a publishing tool that is generally used for Python documentation, although it can be used for other documents as well. Sphinx is primarily based on reStructuredText, and there are all sorts of useful extensions (e.g. intersphinx, pngmath, ...). There is a good tutorial in the documentation.

If you're writing a lot of Python, you should probably consider the numpydoc package, which tries to strike a balance between full markup for Sphinx publishing and raw readability.