A DSL for creating your own markup language