CommonMark

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

CommonMark
Markdown-mark.svg
Dateiendung: keine
Entwickelt von: John MacFarlane, David Greenspan, Vicent Marti, Neil Williams, Benjamin Dumke-von der Ehe, Jeff Atwood
Erstveröffentlichung: 5. September 2014
Art: Vereinfachte Auszeichnungssprache
Website: http://commonmark.org/

CommonMark ist eine vereinfachte Auszeichnungssprache, die von einer kleinen Gruppe Entwicklern um John MacFarlane und Jeff Atwood mit dem Versuch entwickelt wurde, die Mehrdeutigkeiten im Parsing von Markdown zu eliminieren, so dass verschiedene, der Spezifikation entsprechende Parser, das gleiche Ergebnis liefern.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Markdown, das unter anderem auf Stack Overflow und GitHub zum Verfassen von Beiträgen eingesetzt wird, führt leicht zur Verwirrung – vor allem durch folgende drei Eigenschaften:[1]

  • URLs werden nicht automatisch in Hyperlinks umgewandelt. Stattdessen müssen sie explizit gekennzeichnet werden.
  • Der Unterstrich (_) zur Formatierung von _kursivem_ und __fettem__ Text greift auch innerhalb eines Wortes, was zu unerwarteten Nebeneffekten führen kann, zum Beispiel in Ausdrücken wie „Eine_Datei“ und „Eine_andere_Datei“ (unerwartetes Ergebnis: „EineandereDatei“).
  • Markdown orientiert sich an Absätzen und nicht an Zeilen. Zeilenendmarken (CR/LF) werden nicht automatisch in Zeilenumbrüche umgewandelt. Für einen Absatz werden eine oder mehrere Leerzeilen benötigt.

Ende 2012 riefen David Greenspan und Jeff Atwood ein neues Projekt ins Leben, um eine offizielle Markdown-Spezifikation zu erstellen, deren verschiedene Implementierungen mithilfe einer Standardtestsuite validiert werden können. Damit sollte die Popularität von Markdown weiter gefördert werden, anstatt die Fragmentierung der Sprache fortzusetzen.

Im September 2014 wurde ein erster Entwurf der Syntax zunächst unter dem Namen „Standard Markdown“ veröffentlicht. Nach einer heftigen Reaktion John Grubers über Twitter und einer anschließenden Diskussion mit den Verantwortlichen hinter dem Projekt einigte man sich schließlich auf den Namen CommonMark.[2][3]

Unterschiede zu Markdown[Bearbeiten | Quelltext bearbeiten]

Im Folgenden werden einige Unterschiede zwischen Markdown und CommonMark aufgeführt.

Auszeichnungselement Markdown CommonMark
Verschachtelte Aufzählungen Markdown schreibt hier nur vier Leerzeichen für zu einem Punkt gehörende Folgeabsätze vor. Wie viele für eine verschachtelte Aufzählung benötigt werden, ist nicht explizit geregelt und wurde bisher in verschiedenen Implementierungen unterschiedlich gehandhabt.

Beispiel:

- foo
    - bar
   - baz
In CommonMark muss eine verschachtelte Liste um so viele Zeichen eingerückt werden, wie das auch ein Absatz sein müsste, um zur Liste zu gehören.

Beispiel:

- foo
  - bar
    - baz
Leerzeile vor Überschriften und Blöcken Die meisten Implementierungen benötigen keine Leerzeile, was zu Mehrdeutigkeiten beim Auswerten führt. Eine Leerzeile beendet einen Block
Leerzeile vor eingerücktem Quellcode Wird von einigen Implementierungen benötigt, aber in der Dokumentation nirgends erwähnt Eine Leerzeile wird benötigt, um einen neuen Block zu definieren. Der Quellcode wird um vier Zeichen eingerückt.

Zum Beispiel:

Funktion:

    int test(void) {
        return 42;
    }

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Jeff Atwood: Responsible Open Source Code Parenting. Coding Horror: Programming and Human Factors. 29. Dezember 2009, abgerufen am 12. September 2014 (englisch).
  2. Julia Schmidt: Initiative versucht sich an Standard Markdown. heise Developer. 4. September 2014, abgerufen am 12. September 2014 (deutsch).
  3. Julia Schmidt: Standard Markdown in CommonMark umbenannt. heise Developer. 8. September 2014, abgerufen am 12. September 2014 (deutsch).

Weblinks[Bearbeiten | Quelltext bearbeiten]