yodl implements a pre-document language and tools to process it. It
lets you write a single document, then use a tool (e.g., yodl2html) to
convert it to some final document language (HTML, man, LaTeX, etc.).
Yodl's document language is easy to use and to expand. Predefined
converters are available from Yodl to HTML, LaTeX, groff (manpages),
text, and (experimentally) XML, but new converters can be added easily.