Summary
A tool that converts between formats for entire bodies of documentation while preserving structure. Currently, it has only been used to poorly convert the Common Lisp Hyperspec to Texinfo format.
The design is largely inspired by Pandoc. All documentation is structurally pretty similar. That structure can be summarized well by a graph or tree of seperate pieces of markup. This tool uses a function from a set of readers to parse this structure, converts the contained markup using Pandoc, and then produces a new structure of a different type using a function from a set of writers. The whole pipeline is formed by composing these functions.
Lessons Learned
- Purely Functional Programming in Haskell