We are fans of Sphinx – the Python Documentation Generator.
Originally developed for documenting software projects (and very good indeed for that), with a few tweaks it can become an excellent document preparation system. Want the same document as web pages and a well formatted PDF? Sphinx is the thing you need. There are a few tweaks needed to the default Sphinx set-up to remove its heritage as a documentation system (the very word “documentation” is buried in many places). Lots of people have done this, but we couldn’t find instructions written down. So here goes. We’re assuming you know how to set Sphinx up for a doccy project (or that you’re capable of reading their docs on the subject).
All done. Simples!