Um zu verstehen warum AsciiDoc muss man verstehen warum überhaupt Markup-Sprachen und nicht einfach gleich HTML schreiben.
Häufig wird die Markup-Sprache ja letzen Endes auch wieder nur in HTML umgewandelt (manchmal auch in PDF, ePUB oder irgendetwas anderes, aber das könnte man mit HTML auch machen).
O.K. technisch gesehen ist Hyper Text Markup Language - aka. HTML auch eine Markup-Sprache, aber ich meine hier Markup im Sinne von Markdown, ReST (reStructuredText), AsciiDoc.
In der Regel aus diesen Gründen:
Sicherheitgründe - Zum Beispiel in einem Forum möchte man Benutzern erlaubern ihre Texte in fest definiertem Umfang zu gestalten, Farbe, Fett schreiben, Schriftgröße, Italic. Ggf. lässt man noch das einbinden von Bildern zu.
Markdown (häufig in diesem Bereich genutzt) bietet (oder kann darauf beschränkt werden) diesen limitierten Umfang. Der Compiler übersetzt Zeichenfolgen wie **Something**
in entsprechendes HTML mit den entsprechenden CSS-Klassen.
Bestimmte Zeichenfolgen werden also fest in bestimmte HTM/CSS-Strukturen umgesetzt.
Unbeschränktes HTML hingegen würde zum Beispiel erlauben CSS-Klassen zu überschreiben und damit durch einfaches Posten die gesamte Seite umzugestalten.
Oder das einbinden von Scripten, die ggf. Cross-Site-Scripting-Angriffe erlauben und damit Benutzer-Daten stehlen
Man muss bedenken: Durch das Posten (oder anderweitige hinterlegen von Daten) in einer Web-Applikation ändert ein Benutzer die gerenderte Website, HTML unterscheidet nicht zwischen Daten die Teil der eigentlichen Web-Applikation sind und Daten die durch eine dritte Partei (Benutzer) eingebracht wurden, es ist alles Teil der gleichen gerenderten Website und hat die gleichen "Rechte".
Templating/Geschlossene Systeme - Redakionssysteme, Blog-Systeme oder Systeme zum Erstellen technischer Dokumentation nutzen Templates die in Teilen bereits definieren wie die eine Seite aussehen soll und grob strukturiert ist.
Ein Bild zum Beispiel kann immer von einem sichtbaren Kasten umgeben sein. Nach einer Überchrift ein Absatz kommen, Überschriften in ein Inhaltsverzeichnis eingefügt werden usw.
Damit sich der eigentliche Schreiber darüber keine Gedanken machen muss schreibt er in Markup, der Text Processor wandelt dann anhand von Regeln das Markdown in entsprechende HTML-Strukturen um, die die gewünschten zusätzlichen Elemente und Formatierungen enthalten.
Einfachheit - Autoren wollen sich auf das Schreiben konzentrieren.
Ein Markup-System sollte also so wenig zusätzliche Schreibarbeit wie möglich verursachen, einfach zu merkende Symbole nutzen (schnell ins Blut übergehen).
Der folgende Text<span class="bold">ist fett geschrieben</span>
Der folgende Text **ist fett geschrieben**
HTML
<table>
<tr>
<th>Erste</th>
<th>Zweite</th>
</tr>
<tr>
<td>Datensatz 1, Spalte 1</td>
<td>Datensatz 1, Spalte 2</td>
</tr>
<tr>
<td>Datensatz 2, Spalte 1</td>
<td>Datensatz 2, Spalte 2</td>
</tr>
</table>
AsciiDoc
|===
|Erste|Zweite
|Datensatz1, Spalte1|Datensatz1, Spalte 1
|Datensatz2, Spalte1|Datensatz2, Spalte2
|===