Tim Tepaße: ASCII-Text in HTML umwandeln: ReStructured Text, Markdown

Beitrag lesen

Ave Cäsar,

Eine Textverarbeitung arbeitet aber nicht wie HTML.

Jain. Eigentlich schon, man kann sich Formate ("Klassen") definieren und diese auf seinen Text anwenden. So sollte man Word und Open Office eigentlich effizient benutzen, aber 95 % aller Benutzer benutzen es immer noch wie ihre Schreibmaschine, die durch die drei Knöpfe B, U, I und einer Schriftgrößenskala aufgebohrt wurde.

Man kann das natürlich so machen, aber dann muss man IMHO am Anfang des Dokumentes ein <pre> und am Schluss ein </pre> setzen und auf die Vorteile von HTML verzichten.
Irgendwie verstehe ich nicht so richtig wie du das meinst.

Du hast at falsch verstanden. Er meinte nicht, dass die Ausgabe Text in diktengleicher Schrift mit Formatierung mittels Leerzeichen und Leerzeilen sein sollte, sondern dass das die Eingabe sein sollte.

Ich versuche es mal zu erklären. Es gibt eine bestimmte Klasse von Textformatierungen, die klassischen Schreibmaschinenbenutzern eher entgegenkommt, als Steuerbefehle (Tags, BBCode) mitten in den Text zu schreiben. Diese Textformatierungen lehnen sich an die minimalen Formatierungen an, die man früher auf Schreibmaschinen und dann in ASCII-Texten, zum Beispiel E-Mails oder auch im IRC macht.

Zum Beispiel:

Überschriften unterstreichen

*etwas _besonders_ zu betonen*

Diese Textformatierungen sind also erstmal nur eine Variante Textformatierung, die aber der „natürlichen“ Benutzung nahe kommt, aber eine feste Syntax hat. Der Clou ist jetzt, dass Skripte dann diesen Text genau wie BBCode in HTML umwandeln, einfache Perl, PHP, Python-Skripte, man wirft ihnen Text vor und sie machen HTML daraus.

Der einzige Unterschied ist, dass der Benutzer nicht in ihm fremden „Markup“ denken muss, sondern einen natürlicheren Text tippen kann. BBCode ist strukturell ja eigentlich nur HTML in eckigen statt in spitzen Klammern, das Konzept bleibt dasselbe, die Erleichterung für den Nutzer halte ich für nicht wirklich existent.

Davon gibt es mehrere Varianten, Structured Text, Setext, ReStructured Text, Textile, Markdown, etc. pp. Ich schmeiss mal ein paar Links in die Runde:

at hatte auf ReStructured Text (RST) hingewiesen, das scheint besonders im Python-Land populär zu sein.

Dean Allen hat Textile erfunden, um selber eine Möglichkeit zu haben, schnell HTML einzugeben, ohne sich mit tatsächlichen, umständlichen HTML-Code und den dämlichen spitzen Klammern abmühen zu müssen. Das ganze ist sehr HTML-zentrisch, für Menschen ohne HTML-Kenntnisse also eher nix. Du solltest schon darüber gestolpert sein, Gerrit setzt es im Kommentarsystem seines Weblogs ein.

John Gruber hat Markdown erfunden, das wieder eher menschenfreundlicher als Textile ist, näher an RST und traditioneller ASCII-Formatierung.

Wenn es Dich noch nicht überzeugt hat, hier am lebenden Beispiel:

Wie würdest du denn das was ich weiter oben angemerkt hatte auszeichnen?
<ul>
<li>bla blub</li>
<li>
  <p>Hallo dies hier ist ein</p>
  <p>Text welcher über mehrere Absätze geht</p>
</li>
</ul>

So wie ich die RST und Markdown-Spezifikationen lese, dann sind die eigentlich ziemlich gleich in diesem Punkt, d.h. diese HTML-Ausgabe wird in beiden Textsystemen durch diese Texteingabe erzeugt:

<snip>

  • bla blub

  • Hallo dies hier ist ein

Text welcher über mehrere Absätze geht

</snap>

Du siehst: Listen werden dadurch erzeugt, dass sie ein Listensymbol davor haben. Das kann ein "-" sein, aber auch ein "+" oder ein "*" gehen. Absätze werden durch eine Leerzeile zwischen zwei Textstücken erzeugt. Man kann Absätze in Listen verschachteln, wenn man die Einrückung beachtet.

Du kannst es selbst ausprobieren, überflieg mal die Markdown Basics und probier im Onlineausprobiergerät herum. Macht Spaß. Ich komme glatt in Versuchung, mir Markdown hier zu installieren, meine Texte so zu schreiben und per Klick im Texteditor in HTML umwandeln zu lassen.

Tim