I would also add that Asciidoctor has the best extension experience out there. It has named blocks and inline sequences that can be handled correctly by a plugin, which is amazing if you ever tried to add syntax into Markdown. Just compare how bug-free and simple is embedding Mathjax into Asciidoctor compared to Markdown: last time I've checked you had to manually process Markdown to extract all Mathjax stuff, apply Markdown and then inject Mathjax back. With Asciidoctor it's a no-brainer.
Edit: it's also available in Ruby, JS and on JVM!