Credit: http://asciidoc.org
A sciiDoc is a shell program that takes source text, formats it and produces legible, correct output. A plus of AsciiDoc is that there are several versions in Ruby, Java, JavaScript and Python (plus Rust and Go unofficially) that produces mostly identical output.
Markup or formatting languages are about separating content from presentation. So tables are special structures with rows and columns, not text aligned by indents and spaces.
AsciiDoc tries to emulate many functions of LaTeX, albeit at a low level. LaTeX documents, for example, allow data to be automatically read in and prepared, as well as define their own macros and more. AsciiDoc does not do this directly, so there is no simple way to define your own elements – the existing ones must suffice. On the other hand, AsciiDoc syntax is much simpler, easier-to-understand and use than LaTeX, and much faster to write. In some places, AsciiDoc takes over elements from LaTeX, such as when citing references. Then the corresponding LaTeX macros are provided as AsciiDoc macros.
A special feature of AsciiDoc is the internal data format. This is closely based on (X)HTML and thus easily supports many output formats with which LaTeX has problems. EPUB and other ebook formats, for example, are based on HTML, which makes AsciiDoc an ideal input. In fact, AsciiDoc is even able to translate the supported formats directly into LaTeX and DocBook formats. While the conversion is largely error-free, it still must still be manually post-processed.