<p>You might want to examine <a href="https://github.com/franzinc/net-xml-generator">https://github.com/franzinc/net-xml-generator</a> which is (sort-of) a DSL for generating and pretty-printing XML. It uses reader macros and the pretty-printer so that XML elements can be freely intermixed and nested inside Lisp code. (Unlike HTML, XML has an unbounded set of tags, so defining a finite set of keywords won't work.) <br>

Download the zip and view the xhtml blurb in a browser. It self-referentially contains the Lisp code that generated it, which is probably harder to do in other languages.<br>
</p>