Markdown

Markdown
Dateiendung: .md, .markdown
MIME-Type: text/markdown
Entwickelt von: John Gruber
Aktuelle Version 1.0.1
Art: Vereinfachte Auszeichnungssprache
daringfireball.net/projects/markdown


Markdown ist eine vereinfachte Auszeichnungssprache, die von John Gruber und Aaron Swartz entworfen und im Dezember 2004 mit Version 1.0.1 spezifiziert wurde. Ein Ziel von Markdown ist, dass schon die Ausgangsform ohne weitere Konvertierung leicht lesbar ist. Als Auszeichnungselemente wurden daher vor allem Auszeichnungsarten verwendet, die in Plain text und E-Mails üblich sind. Auch andere Auszeichnungssprachen mit ähnlichen Zielen zur Lesbarkeit – wie reStructuredText oder Textile – hatten Einfluss auf die Syntax. Der MIME-Type lautet text/markdown.[1]

Die Markdown-Konvertierungssoftware wandelt Text in gültiges und W3C-konformes XHTML um. Die Referenzimplementierung in Perl steht unter einer BSD-artigen Lizenz. Weiter sind inzwischen Implementierungen in den gängigsten Programmiersprachen wie C (z. B.[2]), PHP (z. B.[3]), Python (z. B.[4]), Go (z. B.[5]) oder JavaScript (z. B.[6]) verfügbar.

Verbreitung

Genutzt wird Markdown vorwiegend auf Plattformen mit eher technikaffinem Publikum wie GitHub, Stack Overflow oder der Blogging-Plattform Ghost. Markdown wird häufig bei Readme-Dateien verwendet. Seit 2010 werden die Pressemitteilungen der dpa im Markdown-Format veröffentlicht.[7] Google+ verwendet zum Auszeichnen von kursivem, fettem und durchgestrichenem Text eine Syntax, die Markdown ähnelt und oft irrtümlich mit Markdown assoziiert wird. Die Syntax ist aber die von Textile.[8]

Die meisten größeren Content-Management-Systeme, Wikis und Foren lassen sich durch Plug-ins um Markdown-Unterstützung erweitern. Es gibt Plugins für WordPress,[9] Joomla[10] oder MediaWiki.[11] Auch die Inhalte verschiedener Flat-File-Content-Management-Systems wie Kirby oder Bludit (bei dem nach Wahl auch HTML Code verwendet werden kann) werden in Markdown verfasst.[12] Viele statische Webseiten-Generatoren (static site generators, wie Jekyll) nutzen Markdown als Auszeichnungssprache für den Inhalt.[13][14] Markdown wird auch in anderer Software genutzt, z. B. im Software-Dokumentationswerkzeug Doxygen.

Auszeichnungsbeispiele

Für die Auszeichnung von Text verwendet Markdown vor allem Satzzeichen und gestattet in einigen Fällen mehrere gleichwertige Methoden. Zeichen, die für gewöhnlich als Formatbefehle verstanden werden, können mit einem umgekehrten Schrägstrich (Backslash) maskiert (übergangen) werden. So wird beispielsweise ein Sternsymbol („Asterisk“, *) am Zeilenbeginn als Aufzählungszeichen interpretiert; will man wirklich ein Sternchen, leitet man es mit einem Backslash ein: \*.

Autoren können bei Bedarf für komplexere Auszeichnungen XHTML-Blockelemente verwenden. Diese Elemente werden von der Konvertierungssoftware ohne Änderung in das Zieldokument übernommen. Dadurch ist es möglich, Bereiche des Dokuments in gewöhnlichem XHTML zu formatieren.

Textgestaltung
Ausgangsform Zielform
Normaler Text wird so dargestellt wie eingegeben.

Eine Leerzeile erzeugt einen Absatz.
Normaler Text wird so dargestellt wie eingegeben.

Eine Leerzeile erzeugt einen Absatz.

Zwei oder mehr Leerzeichen am Ende der Zeile  

erzeugen einen Zeilenumbruch.

Zwei oder mehr Leerzeichen am Ende der Zeile
erzeugen einen Zeilenumbruch.

(Im Seitenquelltext dieses Artikels ist an der entsprechenden Stelle ein expliziter Zeilenumbruch mit <br /> zu finden.)

*Kursiv*, **Fett** und ***Fett kursiv*** bzw.

_Kursiv_, __Fett__ und ___Fett kursiv___

Kursiv, Fett und Fett kursiv bzw.

Kursiv, Fett und Fett kursiv

Markiert Text als `Inline-Quelltext` Markiert Text als Inline-Quelltext
Ein normaler Absatz

    Ein Code-Block
    durch Einrückung
    mit vier Leerzeichen
Ein normaler Absatz

    Ein Code-Block
    durch Einrückung
    mit vier Leerzeichen

* Ein Punkt in einer ungeordneten Liste
* Ein weiterer Punkt in einer ungeordneten Liste
    * Ein Unterpunkt, um vier Leerzeichen eingerückt
* Statt * funktionieren auch + oder -
  • Ein Punkt in einer ungeordneten Liste
  • Ein weiterer Punkt in einer ungeordneten Liste
    • Ein Unterpunkt, um vier Leerzeichen eingerückt
  • Statt * funktionieren auch + oder -
1. Ein Punkt in einer geordneten Liste
2. Ein weiterer Punkt; bei der Eingabe muss nicht auf irgendeine Reihenfolge geachtet werden, sondern nur darauf, dass es beliebige Ziffern sind
1. Noch ein Punkt, der zeigt, dass auch die mehrfache Angabe derselben Ziffer möglich ist
  1. Ein Punkt in einer geordneten Liste
  2. Ein weiterer Punkt; bei der Eingabe muss nicht auf irgendeine Reihenfolge geachtet werden, sondern nur darauf, dass es beliebige Ziffern sind
  3. Noch ein Punkt, der zeigt, dass auch die mehrfache Angabe derselben Ziffer möglich ist
HTML-Überschriften werden erzeugt, indem man die Zeile mit Doppelkreuzen beginnt – ihre Anzahl gibt die Ebene der gewünschten Überschrift an.
# Überschrift in Ebene 1
#### Überschrift in Ebene 4
Überschrift in Ebene 1
Überschrift in Ebene 4
Für die ersten zwei Ebenen ist auch eine alternative Schreibweise möglich:
Überschrift in Ebene 1
======================
Überschrift in Ebene 2
----------------------
Überschrift in Ebene 1
Überschrift in Ebene 2
> Dieses Zitat wird in ein HTML-Blockquote-Element gepackt.

Dieses Zitat wird in ein HTML-Blockquote-Element gepackt.

[Beschriftung des Hyperlinks](https://de.wikipedia.org/ "Titel, der beim Überfahren mit der Maus angezeigt wird") Beschriftung des Hyperlinks
allgemeine Syntax:

![Alternativtext](Bild-URL "Bildtitel hier")

konkretes Beispiel:
![nur ein Beispiel](https://commons.wikimedia.org/wiki/File:Example_de.jpg "Beispielbild")

Bindet ein Bild von der Quelle Bild-URL ein.

nur ein Beispiel

Weiterentwicklungen

Es gibt mehrere Erweiterungen und Weiterentwicklungen von Markdown, die die eingeschränkten Möglichkeiten erweitern.

CommonMark
Im Oktober 2012 wurde eine Standardisierung von Markdown angeregt, die seit dem 5. September 2014 unter dem Namen CommonMark (ursprünglich: Standard Markdown und Common Markdown) veröffentlicht wurde.[15][16][17]
MultiMarkdown (MMD)
ermöglicht zusätzlich den Export nach LaTeX, PDF und erweitert die Syntax um Fußnoten, Tabellen, Glossare, Zitate, Metadaten (wie Titel, Autor, Datum) und Inline-HTML[18][19].
Markdown Extra
bietet vor allem Inline-HTML und wiederum Markdown innerhalb von HTML Blöcken, Tabellen, Definitionslisten, Abkürzungen, Fußnoten, Sprungmarken für Überschriften.[20]
Pandoc Markdown
ermöglicht das Überführen von Markdown in einige andere Formate, inklusive LaTeX und PDF. Außerdem erweitert es Markdown um Syntax für einfache und gerasterte Tabellen, Definitionslisten, automatische Referenzen für Beispiele, Sprungmarken für Überschriften, automatische Titelseiten, durchgestrichenen Text, Hoch- und Tief-Stellung, Mathematikmodus für alle Ausgabeformate, eingebettetes TeX, Bildunterschriften, Fußnoten und Quellenangaben mit Bibliographie nach CSL.[21]
GitHub Flavored Markdown
ermöglicht das Rendern zu HTML direkt auf dem Webdienst GitHub. Es erweitert die Syntax um Code-Blöcke und Referenzen auf Benutzerprofile, Changesets und Tickets.[22]
Stack Overflow Flavored Markdown
wird auf Stack Overflow verwendet und erweitert die Syntax um Tags, Spoilers und Syntax Highlighting für Code[23]. Es existiert eine Open-Source-Implementierung namens MarkdownSharp[24].

Siehe auch

Einzelnachweise

  1. RFC 7763
  2. Vicent Martí: Sundown. Am 29. November 2012 als hinfällig bezeichnet. Abgerufen am 16. Juni 2013 (englisch).
  3. Michel Fortin: PHP Markdown. Version 1.3 vom 11. April 2013. Abgerufen am 16. Juni 2013 (englisch).
  4. Python Software Foundation: Markdown. Version 2.3.1 vom 22. März 2013. Abgerufen am 16. Juni 2013 (englisch).
  5. Simon Waldherr: micromarkdown.go. Version 0.1.0 vom 17. Februar 2014. Abgerufen am 22. Februar 2014 (englisch).
  6. John Fraser, Corey Innis, u. a.: Showdown.. Version 0.3.1 vom 2. November 2012. Abgerufen am 16. Juni 2013 (englisch).
  7. dpa newslab: dpa-Notizblock und die seltsamen #-Zeichen 22. April 2010, abgerufen am 20. März 2015.
  8. Google Inc.: Inhalte auf Google+ teilen – Tipps zum Posten. 2. Mai 2013, abgerufen am 16. Juni 2013.
  9. Markdown on Save bei wordpress.org (englisch)
  10. ACE X Markdown Editor bei joomla.org (englisch)
  11. Extension:MarkdownExtraParser bei mediawiki.org (englisch)
  12. Kirby: CMS ohne Datenbank. T3N-Magazin Nr. 29
  13. Jekyll • Simple, blog-aware, static sites. Abgerufen am 25. März 2016 (englisch).
  14. Top Open-Source Static Site Generators. In: staticgen.com. Abgerufen am 25. März 2016 (englisch).
  15. Jeff Atwood: The Future of Markdown. Coding Horror: Programming and Human Factors. 25. Oktober 2012, abgerufen am 16. Juni 2013 (englisch).
  16. Jeff Atwood: Standard Markdown is now Common Markdown. Coding Horror: Programming and Human Factors. 5. September 2014, abgerufen am 12. September 2014 (englisch).
  17. commonmark.org
  18. Fletcher Penney: MultiMarkdown. Version 4.1.1 vom 2. Juni 2013. Abgerufen am 16. Juni 2013 (englisch).
  19. Fletcher Penney u. a.: MultiMarkdown Syntax Guide. 25. Dezember 2012, abgerufen am 16. Mai 2013 (englisch).
  20. Michel Fortin: PHP Markdown Extra. Abgerufen am 16. Juni 2013 (englisch).
  21. John MacFarlane: Pandoc User’s Guide. Abgerufen am 16. Juni 2013 (englisch).
  22. GitHub Inc.: GitHub Flavored Markdown. 14. Juni 2013, abgerufen am 13. Juni 2013 (englisch).
  23. Stack Exchange Inc.: Markdown help. Abgerufen am 16. Juni 2013 (englisch).
  24. Jeff Atwood: MarkdownSharp. C# Markdown processor. Version 113 vom 3. Juli 2010. Abgerufen am 16. Juni 2013 (englisch).