Mit Markdown verlieren HTML-Formatierungen ihren “Schrecken”. Yellowj | shutterstock.com Die allgemeine Benutzerfreundlichkeit und simple Natur des Markdown-Textformats haben zu einer breiten Akzeptanz in diversen Bereichen geführt: Blogger waren die ersten frühen Anwender, die es nutzten, um Beiträge zu verfassen und Links einzubetten – ohne dazu einen WYSIWYG-Editor zu benötigen. Heute nutzen unter anderem viele Developer Markdown (oder eine seiner Varianten), um ihre Dokumentationen zu schreiben. Das liegt auch an der denkbar niedrigen Zugangsbarriere: Für den Einstieg ist lediglich ein Texteditor nötig. In diesem Artikel lesen Sie: wie sich Markdown definiert, wie die Markup-Sprache sich entwickelt hat, welche Grundelemente ihre Syntax auszeichnen, welche weiteren Anwendungsfälle es gibt, und welche Varianten von Markdown existieren. Markdown – Definition Markdown ist eine vereinfachte Auszeichnungssprache, die ihren Fokus auf die Lesbarkeit von Texten legt. Sie erleichtert es, Texte problemfrei in HTML (oder ein anderes Rich-Format) zu konvertieren. Das Besondere an Markdown ist dabei, dass es zu Formatierungszwecken auf eine reine Textsyntax setzt. So ist auf den ersten Blick erkennbar, wie in Markdown formatierter Text am Ende aussehen wird. Markdown – Historie Entwickelt wurde Markdown von den Softwareexperten John Gruber und Aaron Swartz. Erstmals veröffentlicht wurde die Auszeichnungssprache Ende 2004. In dieser Web-Ära wiesen E-Mails und Usenet-Beiträge, die in reinem Text geschrieben waren, schon länger eine Art “Ad-Hoc-Formatierungskultur” auf. *Sternchen* oder _Unterstriche_ sind nur zwei Beispiele für die damals übliche Art und Weise, bestimmte Textstellen hervorzuheben. Diese textuellen Hinweise wurden jedoch nicht als HTML gerendert, sondern stellten lediglich eine Andeutung dar, wie das Markup aussehen könnte. Gruber und Swartz nutzten diese Form von Plaintext-Markup schließlich, um formatierte Outputs zu generieren. Für ihr Projekt ließen sich die Softwareexperten außerdem unter anderem auch von reStructuredText (RST) inspirieren, einer anderen Auszeichnungssprache, die im Jahr 2002 veröffentlicht worden war. Die erste Version von Markdown war schließlich ein in Perl geschriebenes Skript, das entweder Standalone verwendet oder in andere Software integriert werden konnte – beispielsweise in die Publishing-Pipeline eines Blogs oder in Form eines Textfilters für Message Boards wie BBEdit. Heute existiert Markdown weiterhin als Perl-Skript – mittlerweile existieren jedoch auch Markdown-Bibliotheken für unzählige Programmiersprachen. Die Markdown-Syntax Markdown-Dokumente sind im Wesentlichen reine Textdateien und können sowohl in ASCII– als auch in UTF-8-Kodierung vorliegen – alle wichtigen Formatierungen erfolgen in erstgenanntem. Um formatierten Output zu generieren, “verfüttern” Sie das Markdown-Dokument lediglich an ein Verarbeitungsskript – etwa das bereits angesprochene Perl-Skript. Plain Text wird dabei unverändert wiedergegeben, während bestimmte Zeichenfolgen bewirken, dass Text entweder als Block- oder Inline-Element formatiert wird. Das ist Plain Text. Einzelne Zeilenumbrüche werden als normaler Weißraum behandelt, doppelte Zeilenumbrüche markieren hingegen den Beginn eines neuen Absatzes: Diese beiden Zeilen würden einen Absatz bilden.Diese durch einen doppelten Zeilenumbruch abgetrennte Sektion wäre ein eigener Absatz. Um Text hervorzuheben, kommen Sternchen, Unterstriche und weitere Symbole zum Einsatz: Kursivschrift: *Italics* Fettschrift: **Bold** Durchgestrichen: ~~Strikethrough~~ (nicht durchgängig unterstützt) Überschriften in einem Dokument (in HTML gesprochen H1 bis H5) können über ein Hash-Symbol, beziehungsweise eine Raute am Anfang einer Zeile dargestellt werden: # Main headingText## SubheadingMehr text Das würde in folgendem HTML-Code resultieren: Main headingTextSubheadingMehr text Weitere Grundlagen: Um eine horizontale Linie zu erstellen, beginnen Sie eine neue Zeile einfach mit — oder ===. Inline-Links nutzen eine []()-Konstruktion, um den Text des Links von seiner URL zu trennen, zum Beispiel: [die Computerwoche-Homepage](https://www.computerwoche.de). Viele Markdown-Varianten unterstützen auch ein URL-Format mit spitzen Klammern, etwa , allerdings ohne separat formatiertes Text-Label. Ein Bild einzufügen, funktioniert über einen Link, dem ein Ausrufezeichen vorangestellt ist – also zum Beispiel . Stattdessen einfach nur das Bild ohne Metadaten einzufügen, funktioniert mit . Für eingerückte Blöcke oder Zitate im Blockformat setzen Sie ein > an den Anfang eines Absatzes: Regulärer text> Eingerückter block>> Doppelt eingerückter BlockMehr regulärer text Code-formatierter Text wird durch Blöcke mit drei Backquotes abgegrenzt: “` test “` Ungeordnete Listen nutzen *, + oder – am Zeilenanfang, wobei Ebenen über Einrückungen angegeben werden: * Key concept * Sub-concept * weiteres sub-concept* Weiteres key concept. Zu Nummerierungszwecken können beliebige Ziffern gefolgt von einem Punkt genutzt werden – der Markdown-Renderer nummeriert alles automatisch neu: 0. Erstes item0. Zweites item0. Drittes item Zu guter Letzt können Sie HTML bei Bedarf auch manuell einfügen. Allerdings kann es vorkommen, dass der Markdown-Renderer einen Bereich mit manuell eingegebenem HTML als von seiner eigenen Darstellung ausgenommen betrachtet. Ein Beispiel: This may *not* render as intended. Einige Markdown-Renderer versuchen hier möglicherweise, die Markdown-Formatierung zwischen HTML-Tags anzuwenden. In diesen Fällen würde die obige Quelle dann kursiv dargestellt, in anderen würden Sie Sternchen sehen. Markdown-Anwendungsfälle Der ursprüngliche Anwendungsfall für Markdown waren Blogs und Message Boards. Dabei war die Auszeichnungssprache eine Alternative für die Nutzer, die zwar Rich Text rendern, aber kein HTML (manuell) schreiben oder einen WYSIWYG-Editor nutzen wollten, um Markup zu erstellen. Dieser Use Case ist nach wie vor aktuell: Heute nutzen etwa Plattformen wie Discord oder Slack Markdown (in leicht modifizierter Form), um ihren Benutzern zu ermöglichen, Posts abzusetzen und dort Links oder Bilder zu integrieren. Ein weiterer häufiger Anwendungsfall für Markdown ist die Projektdokumentation. So lässt sich mit der Auszeichnungssprache im Handumdrehen eine simple README.md erstellen. Und obwohl es mit Blick auf die Skalierbarkeit von Markdown Kritik gibt, eignet es sich auch für umfangreichere und komplexere Dokumentationsaufgaben. Viele Tools in diesem Bereich (etwa Mkdocs) verwenden Markdown als Kernformat. Darüber hinaus erweitern verschiedene Markdown-Varianten (dazu gleich mehr) den Standard um benutzerdefinierte Funktionen. Davon abgesehen ist Markdown ist auch ein geeignetes Basisformat für ein Wiki. Denn die Wiki-Formatierung folgt im Allgemeinen derselben Philosophie: Es handelt sich um ein Plain-Text-Format mit Anmerkungen, die visuell geparst werden können. Die meisten Wiki-Implementierungen von Markdown erweitern den Standard ebenfalls – beispielsweise, um Dokumente zu transkludieren. Markdown – Einschränkungen Der Kernstandard von Markdown (der lange Zeit nur ein De-facto-Standard war) unterstützt lediglich eine Handvoll von Formatierungsoptionen, die die ursprünglichen Anwendungsfälle widerspiegeln. Schließlich war Markdown nicht als 1:1-Tool gedacht, um HTML zu generieren – sondern als Werkzeug, um schnell Texte zu generieren, die die gängigsten HTML-Elemente verwenden. Entsprechend gibt es einige Dinge, die Sie mit dem Markdown-Kernstandard nicht rendern können: Tabellen: Verschiedene Erweiterungen für Markdown unterstützen die Tabellenformatierung – üblicherweise nutzen sie das Pipe-Symbol (|), um Tabellenspalten zu definieren. Die Implementierungen sind jedoch nicht konsistent, die Markdown-Kernimplementierung verfügt nicht über Tabellensyntax. Fußnoten: Selbst auf einer einfachen Webseite kann es sehr nützlich sein, Fußnoten im Text automatisiert definieren zu können. Auch dafür bietet Markdown keine native Möglichkeit. Metadaten oder Variablen: Die Auszeichnungssprache verfügt außerdem nicht über einen nativen Mechanismus, um Metadaten auf Dokumentebene oder gar der von Inline-Kommentaren zu definieren. Ein manuell eingefügter HTML-Kommentarblock könnte Daten enthalten, aber Markdown selbst kann damit nichts anfangen und konvertiert es einfach mit. Kontrolle über CSS-Klassen oder -Stile: Wenn Sie einen Stil auf einen Textblock anwenden möchten, geht das nur, indem Sie diesen in HTML-Tags einschließen, beispielsweise: … . Markdown selbst sieht für diese Art der Formatierung keine Syntax vor. Markdown-Varianten Der Minimalismus von Markdown ist auch der Grund, warum sich im Laufe der Jahre Varianten entwickelt haben. Diese wollten Markdown nicht verdrängen oder ersetzen, sondern ergänzen. Entsprechend bieten die folgenden Markdowen-Varianten eine Syntax, die auf der von Markdown aufbaut und sie um einige nützliche Features erweitert: CommonMark ist als “stark definierte, hochkompatible Spezifikation von Markdown” konzipiert. Sie übernimmt die Kernsyntax von Markdown und formalisiert sie, um eine Spezifikation, Referenzimplementierungen, eine Testsuite und eine Reihe weiterer Tools zu erstellen. Es definiert keine Erweiterungen für den Standard, sondern beschreibt diesen eindeutig und bietet Möglichkeiten, um Standard-konforme Tools zu erstellen. Eine weit verbreitete Variante ist GitHub-flavored Markdown, das sowohl von GitHub entwickelt wurde als auch viele Anwendungsfälle auf der Plattform ergänzt. Die Spezifikation erweitert CommonMark um Tabellen, Aufgabenlisten und einen Mechanismus, um problematische Raw-HTML-Tags (wie ) zu deaktivieren. Auf ähnliche Weise erweitert das MultiMarkdown-Projekt die grundlegende Markdown-Syntax um Funktionen, die häufig in Dokumenten wie wissenschaftlichen Artikeln oder Büchern verwendet werden – etwa Tabellen, Fußnoten, Zitate, Querverweise oder Mathematikformeln im LaTeX-Format. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!
Was ist Markdown?
Mit Markdown verlieren HTML-Formatierungen ihren “Schrecken”. Yellowj | shutterstock.com Die allgemeine Benutzerfreundlichkeit und simple Natur des Markdown-Textformats haben zu einer breiten Akzeptanz in diversen Bereichen geführt: Blogger waren die ersten frühen Anwender, die es nutzten, um Beiträge zu verfassen und Links einzubetten – ohne dazu einen WYSIWYG-Editor zu benötigen. Heute nutzen unter anderem viele Developer Markdown (oder eine seiner Varianten), um ihre Dokumentationen zu schreiben. Das liegt auch an der denkbar niedrigen Zugangsbarriere: Für den Einstieg ist lediglich ein Texteditor nötig. In diesem Artikel lesen Sie: wie sich Markdown definiert, wie die Markup-Sprache sich entwickelt hat, welche Grundelemente ihre Syntax auszeichnen, welche weiteren Anwendungsfälle es gibt, und welche Varianten von Markdown existieren. Markdown – Definition Markdown ist eine vereinfachte Auszeichnungssprache, die ihren Fokus auf die Lesbarkeit von Texten legt. Sie erleichtert es, Texte problemfrei in HTML (oder ein anderes Rich-Format) zu konvertieren. Das Besondere an Markdown ist dabei, dass es zu Formatierungszwecken auf eine reine Textsyntax setzt. So ist auf den ersten Blick erkennbar, wie in Markdown formatierter Text am Ende aussehen wird. Markdown – Historie Entwickelt wurde Markdown von den Softwareexperten John Gruber und Aaron Swartz. Erstmals veröffentlicht wurde die Auszeichnungssprache Ende 2004. In dieser Web-Ära wiesen E-Mails und Usenet-Beiträge, die in reinem Text geschrieben waren, schon länger eine Art “Ad-Hoc-Formatierungskultur” auf. *Sternchen* oder _Unterstriche_ sind nur zwei Beispiele für die damals übliche Art und Weise, bestimmte Textstellen hervorzuheben. Diese textuellen Hinweise wurden jedoch nicht als HTML gerendert, sondern stellten lediglich eine Andeutung dar, wie das Markup aussehen könnte. Gruber und Swartz nutzten diese Form von Plaintext-Markup schließlich, um formatierte Outputs zu generieren. Für ihr Projekt ließen sich die Softwareexperten außerdem unter anderem auch von reStructuredText (RST) inspirieren, einer anderen Auszeichnungssprache, die im Jahr 2002 veröffentlicht worden war. Die erste Version von Markdown war schließlich ein in Perl geschriebenes Skript, das entweder Standalone verwendet oder in andere Software integriert werden konnte – beispielsweise in die Publishing-Pipeline eines Blogs oder in Form eines Textfilters für Message Boards wie BBEdit. Heute existiert Markdown weiterhin als Perl-Skript – mittlerweile existieren jedoch auch Markdown-Bibliotheken für unzählige Programmiersprachen. Die Markdown-Syntax Markdown-Dokumente sind im Wesentlichen reine Textdateien und können sowohl in ASCII– als auch in UTF-8-Kodierung vorliegen – alle wichtigen Formatierungen erfolgen in erstgenanntem. Um formatierten Output zu generieren, “verfüttern” Sie das Markdown-Dokument lediglich an ein Verarbeitungsskript – etwa das bereits angesprochene Perl-Skript. Plain Text wird dabei unverändert wiedergegeben, während bestimmte Zeichenfolgen bewirken, dass Text entweder als Block- oder Inline-Element formatiert wird. Das ist Plain Text. Einzelne Zeilenumbrüche werden als normaler Weißraum behandelt, doppelte Zeilenumbrüche markieren hingegen den Beginn eines neuen Absatzes: Diese beiden Zeilen würden einen Absatz bilden.Diese durch einen doppelten Zeilenumbruch abgetrennte Sektion wäre ein eigener Absatz. Um Text hervorzuheben, kommen Sternchen, Unterstriche und weitere Symbole zum Einsatz: Kursivschrift: *Italics* Fettschrift: **Bold** Durchgestrichen: ~~Strikethrough~~ (nicht durchgängig unterstützt) Überschriften in einem Dokument (in HTML gesprochen H1 bis H5) können über ein Hash-Symbol, beziehungsweise eine Raute am Anfang einer Zeile dargestellt werden: # Main headingText## SubheadingMehr text Das würde in folgendem HTML-Code resultieren: Main headingTextSubheadingMehr text Weitere Grundlagen: Um eine horizontale Linie zu erstellen, beginnen Sie eine neue Zeile einfach mit --- oder ===. Inline-Links nutzen eine []()-Konstruktion, um den Text des Links von seiner URL zu trennen, zum Beispiel: [die Computerwoche-Homepage](https://www.computerwoche.de). Viele Markdown-Varianten unterstützen auch ein URL-Format mit spitzen Klammern, etwa , allerdings ohne separat formatiertes Text-Label. Ein Bild einzufügen, funktioniert über einen Link, dem ein Ausrufezeichen vorangestellt ist – also zum Beispiel . Stattdessen einfach nur das Bild ohne Metadaten einzufügen, funktioniert mit . Für eingerückte Blöcke oder Zitate im Blockformat setzen Sie ein > an den Anfang eines Absatzes: Regulärer text> Eingerückter block>> Doppelt eingerückter BlockMehr regulärer text Code-formatierter Text wird durch Blöcke mit drei Backquotes abgegrenzt: ``` test ``` Ungeordnete Listen nutzen *, + oder - am Zeilenanfang, wobei Ebenen über Einrückungen angegeben werden: * Key concept * Sub-concept * weiteres sub-concept* Weiteres key concept. Zu Nummerierungszwecken können beliebige Ziffern gefolgt von einem Punkt genutzt werden – der Markdown-Renderer nummeriert alles automatisch neu: 0. Erstes item0. Zweites item0. Drittes item Zu guter Letzt können Sie HTML bei Bedarf auch manuell einfügen. Allerdings kann es vorkommen, dass der Markdown-Renderer einen Bereich mit manuell eingegebenem HTML als von seiner eigenen Darstellung ausgenommen betrachtet. Ein Beispiel: This may *not* render as intended. Einige Markdown-Renderer versuchen hier möglicherweise, die Markdown-Formatierung zwischen HTML-Tags anzuwenden. In diesen Fällen würde die obige Quelle dann kursiv dargestellt, in anderen würden Sie Sternchen sehen. Markdown-Anwendungsfälle Der ursprüngliche Anwendungsfall für Markdown waren Blogs und Message Boards. Dabei war die Auszeichnungssprache eine Alternative für die Nutzer, die zwar Rich Text rendern, aber kein HTML (manuell) schreiben oder einen WYSIWYG-Editor nutzen wollten, um Markup zu erstellen. Dieser Use Case ist nach wie vor aktuell: Heute nutzen etwa Plattformen wie Discord oder Slack Markdown (in leicht modifizierter Form), um ihren Benutzern zu ermöglichen, Posts abzusetzen und dort Links oder Bilder zu integrieren. Ein weiterer häufiger Anwendungsfall für Markdown ist die Projektdokumentation. So lässt sich mit der Auszeichnungssprache im Handumdrehen eine simple README.md erstellen. Und obwohl es mit Blick auf die Skalierbarkeit von Markdown Kritik gibt, eignet es sich auch für umfangreichere und komplexere Dokumentationsaufgaben. Viele Tools in diesem Bereich (etwa Mkdocs) verwenden Markdown als Kernformat. Darüber hinaus erweitern verschiedene Markdown-Varianten (dazu gleich mehr) den Standard um benutzerdefinierte Funktionen. Davon abgesehen ist Markdown ist auch ein geeignetes Basisformat für ein Wiki. Denn die Wiki-Formatierung folgt im Allgemeinen derselben Philosophie: Es handelt sich um ein Plain-Text-Format mit Anmerkungen, die visuell geparst werden können. Die meisten Wiki-Implementierungen von Markdown erweitern den Standard ebenfalls – beispielsweise, um Dokumente zu transkludieren. Markdown – Einschränkungen Der Kernstandard von Markdown (der lange Zeit nur ein De-facto-Standard war) unterstützt lediglich eine Handvoll von Formatierungsoptionen, die die ursprünglichen Anwendungsfälle widerspiegeln. Schließlich war Markdown nicht als 1:1-Tool gedacht, um HTML zu generieren – sondern als Werkzeug, um schnell Texte zu generieren, die die gängigsten HTML-Elemente verwenden. Entsprechend gibt es einige Dinge, die Sie mit dem Markdown-Kernstandard nicht rendern können: Tabellen: Verschiedene Erweiterungen für Markdown unterstützen die Tabellenformatierung – üblicherweise nutzen sie das Pipe-Symbol (|), um Tabellenspalten zu definieren. Die Implementierungen sind jedoch nicht konsistent, die Markdown-Kernimplementierung verfügt nicht über Tabellensyntax. Fußnoten: Selbst auf einer einfachen Webseite kann es sehr nützlich sein, Fußnoten im Text automatisiert definieren zu können. Auch dafür bietet Markdown keine native Möglichkeit. Metadaten oder Variablen: Die Auszeichnungssprache verfügt außerdem nicht über einen nativen Mechanismus, um Metadaten auf Dokumentebene oder gar der von Inline-Kommentaren zu definieren. Ein manuell eingefügter HTML-Kommentarblock könnte Daten enthalten, aber Markdown selbst kann damit nichts anfangen und konvertiert es einfach mit. Kontrolle über CSS-Klassen oder -Stile: Wenn Sie einen Stil auf einen Textblock anwenden möchten, geht das nur, indem Sie diesen in HTML-Tags einschließen, beispielsweise: ... . Markdown selbst sieht für diese Art der Formatierung keine Syntax vor. Markdown-Varianten Der Minimalismus von Markdown ist auch der Grund, warum sich im Laufe der Jahre Varianten entwickelt haben. Diese wollten Markdown nicht verdrängen oder ersetzen, sondern ergänzen. Entsprechend bieten die folgenden Markdowen-Varianten eine Syntax, die auf der von Markdown aufbaut und sie um einige nützliche Features erweitert: CommonMark ist als “stark definierte, hochkompatible Spezifikation von Markdown” konzipiert. Sie übernimmt die Kernsyntax von Markdown und formalisiert sie, um eine Spezifikation, Referenzimplementierungen, eine Testsuite und eine Reihe weiterer Tools zu erstellen. Es definiert keine Erweiterungen für den Standard, sondern beschreibt diesen eindeutig und bietet Möglichkeiten, um Standard-konforme Tools zu erstellen. Eine weit verbreitete Variante ist GitHub-flavored Markdown, das sowohl von GitHub entwickelt wurde als auch viele Anwendungsfälle auf der Plattform ergänzt. Die Spezifikation erweitert CommonMark um Tabellen, Aufgabenlisten und einen Mechanismus, um problematische Raw-HTML-Tags (wie ) zu deaktivieren. Auf ähnliche Weise erweitert das MultiMarkdown-Projekt die grundlegende Markdown-Syntax um Funktionen, die häufig in Dokumenten wie wissenschaftlichen Artikeln oder Büchern verwendet werden – etwa Tabellen, Fußnoten, Zitate, Querverweise oder Mathematikformeln im LaTeX-Format. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!
Was ist Markdown? Mit Markdown verlieren HTML-Formatierungen ihren “Schrecken”. Yellowj | shutterstock.com Die allgemeine Benutzerfreundlichkeit und simple Natur des Markdown-Textformats haben zu einer breiten Akzeptanz in diversen Bereichen geführt: Blogger waren die ersten frühen Anwender, die es nutzten, um Beiträge zu verfassen und Links einzubetten – ohne dazu einen WYSIWYG-Editor zu benötigen. Heute nutzen unter anderem viele Developer Markdown (oder eine seiner Varianten), um ihre Dokumentationen zu schreiben. Das liegt auch an der denkbar niedrigen Zugangsbarriere: Für den Einstieg ist lediglich ein Texteditor nötig. In diesem Artikel lesen Sie: wie sich Markdown definiert, wie die Markup-Sprache sich entwickelt hat, welche Grundelemente ihre Syntax auszeichnen, welche weiteren Anwendungsfälle es gibt, und welche Varianten von Markdown existieren. Markdown – Definition Markdown ist eine vereinfachte Auszeichnungssprache, die ihren Fokus auf die Lesbarkeit von Texten legt. Sie erleichtert es, Texte problemfrei in HTML (oder ein anderes Rich-Format) zu konvertieren. Das Besondere an Markdown ist dabei, dass es zu Formatierungszwecken auf eine reine Textsyntax setzt. So ist auf den ersten Blick erkennbar, wie in Markdown formatierter Text am Ende aussehen wird. Markdown – Historie Entwickelt wurde Markdown von den Softwareexperten John Gruber und Aaron Swartz. Erstmals veröffentlicht wurde die Auszeichnungssprache Ende 2004. In dieser Web-Ära wiesen E-Mails und Usenet-Beiträge, die in reinem Text geschrieben waren, schon länger eine Art “Ad-Hoc-Formatierungskultur” auf. *Sternchen* oder _Unterstriche_ sind nur zwei Beispiele für die damals übliche Art und Weise, bestimmte Textstellen hervorzuheben. Diese textuellen Hinweise wurden jedoch nicht als HTML gerendert, sondern stellten lediglich eine Andeutung dar, wie das Markup aussehen könnte. Gruber und Swartz nutzten diese Form von Plaintext-Markup schließlich, um formatierte Outputs zu generieren. Für ihr Projekt ließen sich die Softwareexperten außerdem unter anderem auch von reStructuredText (RST) inspirieren, einer anderen Auszeichnungssprache, die im Jahr 2002 veröffentlicht worden war. Die erste Version von Markdown war schließlich ein in Perl geschriebenes Skript, das entweder Standalone verwendet oder in andere Software integriert werden konnte – beispielsweise in die Publishing-Pipeline eines Blogs oder in Form eines Textfilters für Message Boards wie BBEdit. Heute existiert Markdown weiterhin als Perl-Skript – mittlerweile existieren jedoch auch Markdown-Bibliotheken für unzählige Programmiersprachen. Die Markdown-Syntax Markdown-Dokumente sind im Wesentlichen reine Textdateien und können sowohl in ASCII– als auch in UTF-8-Kodierung vorliegen – alle wichtigen Formatierungen erfolgen in erstgenanntem. Um formatierten Output zu generieren, “verfüttern” Sie das Markdown-Dokument lediglich an ein Verarbeitungsskript – etwa das bereits angesprochene Perl-Skript. Plain Text wird dabei unverändert wiedergegeben, während bestimmte Zeichenfolgen bewirken, dass Text entweder als Block- oder Inline-Element formatiert wird. Das ist Plain Text. Einzelne Zeilenumbrüche werden als normaler Weißraum behandelt, doppelte Zeilenumbrüche markieren hingegen den Beginn eines neuen Absatzes: Diese beiden Zeilen würden einen Absatz bilden.Diese durch einen doppelten Zeilenumbruch abgetrennte Sektion wäre ein eigener Absatz. Um Text hervorzuheben, kommen Sternchen, Unterstriche und weitere Symbole zum Einsatz: Kursivschrift: *Italics* Fettschrift: **Bold** Durchgestrichen: ~~Strikethrough~~ (nicht durchgängig unterstützt) Überschriften in einem Dokument (in HTML gesprochen H1 bis H5) können über ein Hash-Symbol, beziehungsweise eine Raute am Anfang einer Zeile dargestellt werden: # Main headingText## SubheadingMehr text Das würde in folgendem HTML-Code resultieren: Main headingTextSubheadingMehr text Weitere Grundlagen: Um eine horizontale Linie zu erstellen, beginnen Sie eine neue Zeile einfach mit --- oder ===. Inline-Links nutzen eine []()-Konstruktion, um den Text des Links von seiner URL zu trennen, zum Beispiel: [die Computerwoche-Homepage](https://www.computerwoche.de). Viele Markdown-Varianten unterstützen auch ein URL-Format mit spitzen Klammern, etwa , allerdings ohne separat formatiertes Text-Label. Ein Bild einzufügen, funktioniert über einen Link, dem ein Ausrufezeichen vorangestellt ist – also zum Beispiel . Stattdessen einfach nur das Bild ohne Metadaten einzufügen, funktioniert mit . Für eingerückte Blöcke oder Zitate im Blockformat setzen Sie ein > an den Anfang eines Absatzes: Regulärer text> Eingerückter block>> Doppelt eingerückter BlockMehr regulärer text Code-formatierter Text wird durch Blöcke mit drei Backquotes abgegrenzt: ``` test ``` Ungeordnete Listen nutzen *, + oder - am Zeilenanfang, wobei Ebenen über Einrückungen angegeben werden: * Key concept * Sub-concept * weiteres sub-concept* Weiteres key concept. Zu Nummerierungszwecken können beliebige Ziffern gefolgt von einem Punkt genutzt werden – der Markdown-Renderer nummeriert alles automatisch neu: 0. Erstes item0. Zweites item0. Drittes item Zu guter Letzt können Sie HTML bei Bedarf auch manuell einfügen. Allerdings kann es vorkommen, dass der Markdown-Renderer einen Bereich mit manuell eingegebenem HTML als von seiner eigenen Darstellung ausgenommen betrachtet. Ein Beispiel: This may *not* render as intended. Einige Markdown-Renderer versuchen hier möglicherweise, die Markdown-Formatierung zwischen HTML-Tags anzuwenden. In diesen Fällen würde die obige Quelle dann kursiv dargestellt, in anderen würden Sie Sternchen sehen. Markdown-Anwendungsfälle Der ursprüngliche Anwendungsfall für Markdown waren Blogs und Message Boards. Dabei war die Auszeichnungssprache eine Alternative für die Nutzer, die zwar Rich Text rendern, aber kein HTML (manuell) schreiben oder einen WYSIWYG-Editor nutzen wollten, um Markup zu erstellen. Dieser Use Case ist nach wie vor aktuell: Heute nutzen etwa Plattformen wie Discord oder Slack Markdown (in leicht modifizierter Form), um ihren Benutzern zu ermöglichen, Posts abzusetzen und dort Links oder Bilder zu integrieren. Ein weiterer häufiger Anwendungsfall für Markdown ist die Projektdokumentation. So lässt sich mit der Auszeichnungssprache im Handumdrehen eine simple README.md erstellen. Und obwohl es mit Blick auf die Skalierbarkeit von Markdown Kritik gibt, eignet es sich auch für umfangreichere und komplexere Dokumentationsaufgaben. Viele Tools in diesem Bereich (etwa Mkdocs) verwenden Markdown als Kernformat. Darüber hinaus erweitern verschiedene Markdown-Varianten (dazu gleich mehr) den Standard um benutzerdefinierte Funktionen. Davon abgesehen ist Markdown ist auch ein geeignetes Basisformat für ein Wiki. Denn die Wiki-Formatierung folgt im Allgemeinen derselben Philosophie: Es handelt sich um ein Plain-Text-Format mit Anmerkungen, die visuell geparst werden können. Die meisten Wiki-Implementierungen von Markdown erweitern den Standard ebenfalls – beispielsweise, um Dokumente zu transkludieren. Markdown – Einschränkungen Der Kernstandard von Markdown (der lange Zeit nur ein De-facto-Standard war) unterstützt lediglich eine Handvoll von Formatierungsoptionen, die die ursprünglichen Anwendungsfälle widerspiegeln. Schließlich war Markdown nicht als 1:1-Tool gedacht, um HTML zu generieren – sondern als Werkzeug, um schnell Texte zu generieren, die die gängigsten HTML-Elemente verwenden. Entsprechend gibt es einige Dinge, die Sie mit dem Markdown-Kernstandard nicht rendern können: Tabellen: Verschiedene Erweiterungen für Markdown unterstützen die Tabellenformatierung – üblicherweise nutzen sie das Pipe-Symbol (|), um Tabellenspalten zu definieren. Die Implementierungen sind jedoch nicht konsistent, die Markdown-Kernimplementierung verfügt nicht über Tabellensyntax. Fußnoten: Selbst auf einer einfachen Webseite kann es sehr nützlich sein, Fußnoten im Text automatisiert definieren zu können. Auch dafür bietet Markdown keine native Möglichkeit. Metadaten oder Variablen: Die Auszeichnungssprache verfügt außerdem nicht über einen nativen Mechanismus, um Metadaten auf Dokumentebene oder gar der von Inline-Kommentaren zu definieren. Ein manuell eingefügter HTML-Kommentarblock könnte Daten enthalten, aber Markdown selbst kann damit nichts anfangen und konvertiert es einfach mit. Kontrolle über CSS-Klassen oder -Stile: Wenn Sie einen Stil auf einen Textblock anwenden möchten, geht das nur, indem Sie diesen in HTML-Tags einschließen, beispielsweise: ... . Markdown selbst sieht für diese Art der Formatierung keine Syntax vor. Markdown-Varianten Der Minimalismus von Markdown ist auch der Grund, warum sich im Laufe der Jahre Varianten entwickelt haben. Diese wollten Markdown nicht verdrängen oder ersetzen, sondern ergänzen. Entsprechend bieten die folgenden Markdowen-Varianten eine Syntax, die auf der von Markdown aufbaut und sie um einige nützliche Features erweitert: CommonMark ist als “stark definierte, hochkompatible Spezifikation von Markdown” konzipiert. Sie übernimmt die Kernsyntax von Markdown und formalisiert sie, um eine Spezifikation, Referenzimplementierungen, eine Testsuite und eine Reihe weiterer Tools zu erstellen. Es definiert keine Erweiterungen für den Standard, sondern beschreibt diesen eindeutig und bietet Möglichkeiten, um Standard-konforme Tools zu erstellen. Eine weit verbreitete Variante ist GitHub-flavored Markdown, das sowohl von GitHub entwickelt wurde als auch viele Anwendungsfälle auf der Plattform ergänzt. Die Spezifikation erweitert CommonMark um Tabellen, Aufgabenlisten und einen Mechanismus, um problematische Raw-HTML-Tags (wie ) zu deaktivieren. Auf ähnliche Weise erweitert das MultiMarkdown-Projekt die grundlegende Markdown-Syntax um Funktionen, die häufig in Dokumenten wie wissenschaftlichen Artikeln oder Büchern verwendet werden – etwa Tabellen, Fußnoten, Zitate, Querverweise oder Mathematikformeln im LaTeX-Format. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!