This could be useful for web applications, and also for generating the cats documentation. To do this properly, it may be worth considering having separate formatting and rendering layers.