Add block-based drawing customization

This makes it quite easy to customize the drawing of the text whilst still keeping a decent abstraction.