There is too much whitespace in the site.jsl Jelly script that converts xdocs to HTML. This results in some ugly HTML option (especially when the original xdoc source document has a lot of HTML markup).
There is an easy fix: simply remove the whitespace from the last few Jelly templates in the stylesheet:
<!-- copy any other elements through -->
<jsl:template match="*" trim="false"><jsl:copy trim="false"><jsl:applyTemplates trim="false"/></jsl:copy></jsl:template>
<!-- element values don't pass through as text -->
<jsl:template match="@*"/>
<!-- CDATA and text nodes pass-thru -->
<jsl:template match="text()"><x:expr select="."/></jsl:template>
</jsl:stylesheet>
Applied in xdoc 1.5-SNAPSHOT.
Not too much of a gain though