HTML parsing supports some of this, e.g:
text <b>bold <i>bold-italic</b> italic</i>
that becomes:
text <b>bold <i>bold-italic</i></b><i> italic</i>
that becomes: