Abstract renderer

TODO: support PDF renderer.
Indent