Hello, Enclosed is an update to my experimental mandoc(3) rewrite. Again, note "experimental". However, this has a nice feature: it supports arbitrary bad-block nesting in mdoc(7) in fairly few lines. .Ao .Aq foo Ac bar .Aq foo Ao bar .Ac .Aq Oo Ao Oc Ac The first example has Ao interrupted by the Ac within an Aq; the second has the scope of Aq extended by Ao (with Aq and Ao/Ac, the output is as the input reads, but with It within, say, a -tag list, the scope of It will be extended); and in the third, the scopes of Oo and Ao overlap. Since the macro handlers are recursive, it's pretty easy to pull this off, as you can see. Best, Kristaps