t3n News Entwicklung

Was ist eigentlich Markdown?

Was ist eigentlich Markdown?

„Markdown“ ist eines dieser Schlagwörter, die einem in letzter Zeit immer häufiger begegnen, die man auch schon mal flüchtig irgendwo nachgeschlagen hat, unter denen man sich aber trotzdem nichts vorstellen kann. Wir erklären, warum vor allem für Blogger und IT-Einsteiger eine große Hilfe ist.

Was ist eigentlich Markdown?

Man kennt das – als ambitionierter Internet-User stößt man fast täglich auf Begriffe, die man schon tausendmal gelesen, bei denen man aber noch nie wirklich verstanden hat, was genau sich dahinter verbirgt. Oder man hat nur eine ungefähre Ahnung, worum es geht und möchte durch das eigene Halbwissen nicht unangenehm auffallen. Wir bringen Licht ins Dunkel und erklären die Begriffe und Plattformen auf leicht verständliche Weise. In der Vergangenheit haben wir uns schon reddit, Tumblr, GitHub und Medium.com gewidmet. Heute erklären wir euch, was es mit Markdown auf sich hat.

Computersprachen: Schlechter Ruf eilt ihnen voraus

Computersprachen gelten weithin als kompliziert und schwierig zu erlernen. Auch wenn dem tatsächlich nicht so ist, gibt es doch eine hohe Einstiegshürde, um sich zum ersten Mal mit einer Programmier- oder Auszeichnungssprache zu beschäftigen. Andererseits aber werden solche Kenntnisse immer häufiger gefordert – beruflich wie privat. Wer heutzutage einen eigenen Blog oder eine Webseite betreiben möchte, muss sich entweder mit nervigen WYSIWYG-Editoren (What You See Is What You Get) herumschlagen oder zumindest ein Grundmaß an HTML beherrschen – oder eben Markdown verwenden.

Inzwischen gibt es sogar ein Markdown-Logo, das vielerorts anerkannt und eingesetzt wird, auch wenn es nicht von den Markdown-Erfindern stammt.
Inzwischen gibt es sogar ein Markdown-Logo, das vielerorts anerkannt und eingesetzt wird, auch wenn es nicht von den Markdown-Erfindern stammt. (Bild: Daniel Curtis)

Markdown: Eigentlich eine Anti-Computersprache

Markdown hat Ähnlichkeiten mit einer Computersprache, ist aber wesentlich einfacher konzipiert und soll so für jeden verständlich sein. Markdown ermöglicht es, Texte im Web zu formatieren, ohne das betreffende Dokument dazu mit eckigen Klammern, Befehlen und sonstigen Kommandos zu überfluten, wie man sie für ein gestyltes HTML-Dokument normalerweise benötigt. Ein Markdown-Dokument soll übersichtlich bleiben, und auch im Rohformat angenehm zu lesen sein. Deswegen verwendet Markdown einfache Zeichen zur Formatierung von Text, zum Beispiel Sternchen und Unterstriche anstelle von eckigen Klammern und langen Befehlen. In gewisser Weise kann man Markdown also auch als eine Anti-Computersprache bezeichnen, weil es dazu da ist, um Computersprachen in gewissen Nutzerkreisen überflüssig zu machen.

Markdown-Beispiel: Nur 8 statt 49 Zeichen für die Formatierung nötig

Am besten zeigen sich die Vorteile von Markdown in einem Praxisbeispiel. Zwei Absätze mit Text und einer Überschrift sollen gestylt werden – der erste kursiv, und der Zweite gefettet. In klassischem HTML müsste man eigentlich folgenden Code verfassen:

<h2>Markdown-Test</h2>
<p><strong>Dieser Text soll fett geschrieben werden.</strong></p>
<p><em>Und dieser Absatz soll kursiv angezeigt werden.</em></p>

Das sieht nicht sonderlich schön aus, und lässt einen Leser ohne HTML-Verständnis sofort wieder zurückschrecken. In Markdown würde das obere Beispiel wie folgt aussehen:

## Markdown-Test
**Dieser Text soll fett geschrieben werden.**

*Und dieser Absatz soll kursiv angezeigt werden.*

Im HTML-Format werden ganze 49 Zeichen zur Formatierung benötigt. In Markdown wird für die gesamte Formatierung nur ein Bruchteil der Zeichen benötigt, nämlich acht Stück, und außerdem ist der Text deutlich angenehmer zu lesen.

Das Beispiel zeigt bereits einige der wichtigsten Markdown-Auszeichnungen:

  • Überschriften: Überschriften werden einfach mit Rauten ausgezeichnet. Die Anzahl der Rauten entspricht der Ordnung der Überschriften. Eine Headline dritter Ordnung würde also so aussehen: ### Headline 3
  • Fettschreibung und Kursivierung: Um einen Text fett oder kursiv zu setzen, genügt es in Markdown, den entsprechenden Abschnitt in Sternchen zu setzen. Ein Sternchen bedeutet „kursiv“, zwei Sternchen bedeuten „fett“. *Kursiv* bzw. **Fett**
  • Markdown unterstützt deutlich mehr Formatierungen, etwa das Setzen von Links oder Einbinden von Bildern. Alle Details dazu findet man in der sehr übersichtlichen Markdown-Dokumentation von Daring Fireball.

Markdown: gemacht für Nicht-Programmierer

Das Beispiel zeigt, wie sinnvoll der Einsatz von Markdown ist, gerade in Bereichen, wo auch Menschen ohne Code-Hintergrund in Kontakt mit den betroffenen Texten kommen. Aus diesem Grund gibt es inzwischen viele Content-Management Systeme, die auch mit Markdown-Inhalten bestückt werden können. Ein solcher Editor kombiniert die Vorteile eines Reintext-Editors (ressourcenschonend und keine Probleme bei der Darstellung einer Vorschau) mit der guten Lesbarkeit und Übersichtlichkeit eines WYSIWYG-Editors. CMS, die von Haus aus mit Markdown umgehen können sind zum Beispiel: Anchor, Kirby und Dropplets.

Neuere CMS können häufig bereits von Haus aus mit Markdown umgehen. So zum Beispiel das Anchor CMS.
Neuere CMS können häufig bereits von Haus aus mit Markdown umgehen. So zum Beispiel das Anchor-CMS.

Auch immer mehr bekannte Webdienste springen auf den Markdown-Zug mit auf. So können Nutzer inzwischen bei StackOverflow, GitHub, reddit und mehr Beiträge und Beschreibungen in Markdown verfassen. Sogar Google+ verwendet zum Verfassen von Beiträgen eine Markdown-ähnliche Syntax. Auch außerhalb von CMS gibt es inzwischen nützliche Online-Editoren, die Markdown verstehen. Und sogar der CMS-Veteran WordPress lässt sich mittels Plugin Markdown-kompatibel machen.

Weiterführende Links

Vorheriger Artikel Zurück zur Startseite Nächster Artikel
16 Antworten
  1. von tim am 08.07.2013 (15:55 Uhr)

    Bitte noch einmal nachlesen, was genau eine Programmiersprache ist und was genau HTML ist. Das gleiche gilt für Bedeutung der beiden Elemente strong und em!
    Einfach erklären ist ein super Ziel, technisch korrekt sollte es bei einer Webseite mit einem gewissen technischen Anspruch aber schon sein...

    Antworten Teilen
  2. von Dirk am 08.07.2013 (15:59 Uhr)

    Markdown ist wie HTML keine Programmiersprache, sondern eine Interpretersprache. Falls noch immer nicht verständlich, dann versuch mal mit HTML oder Markdown ein Betriebssystem zu erstellen.

    Antworten Teilen
  3. von tim am 08.07.2013 (16:23 Uhr)

    @Dirk: HTML wird in gewisser Weise interpretiert, üblicherweise sind Interpretersprachen aber eher Programmiersprachen wie z.B. JavaScript, die JIT kompiliert (interpretiert) werden. HTML ist eine Auszeichnungssprache und Markdown so eine Art Präprozessor dafür. Im Zweifelsfall aber auch eine Auszeichnungssprache.

    Antworten Teilen
  4. von Moritz Stückler am 08.07.2013 (22:20 Uhr)

    Hallo tim und Dirk,

    ihr habt natürlich Recht. Da ist mir ein Fehler in der Bezeichnung unterlaufen. Ich habe den Text überarbeitet, und hoffe das es jetzt klarer wird!

    Grüße,
    Moritz

    Antworten Teilen
  5. von tim am 08.07.2013 (22:34 Uhr)

    Schon besser... Befehle, Kommandos und eckige Klammern gibts in HTML zwar immer noch nicht, aber was solls...
    Anstelle von Programmierern könntest du z.B. Entwickler oder Frontend-Designer/Webdesigner nehmen.

    Antworten Teilen
  6. von Dirk am 09.07.2013 (00:16 Uhr)

    HTML ist Auszeichnungssprache? Naja, ich nenne sie hauptsächlich Layout-Sprache, wobei PostScript etwas komplexer als HTML ist. Aber es ist auch statisch, falls nicht Animationen durch ECMA-Script/JavaScript wie in PDFs möglich sind.

    Wie nennst du Server-Sprachen wie PHP, Perl, Python und so weiter? Damit kann man keine Betriebssysteme praktisch programmieren, oder irre ich mich? Theoretisch müsste es bei jeder Sprache möglich sein, falls der Compiler komplex genug ist und die Sprache keine wichtigen Funktionen vermisst, oder was denkst du?

    Antworten Teilen
  7. von tim am 09.07.2013 (10:02 Uhr)

    HTML ist Auszeichnungssprache, ja. Das Ding heißt nicht umsonst MARKUP LANGUAGE. Layouts kriegt man in HTML eigentlich nicht direkt. Dafür benutzt man heutzutage CSS. HTML gibt einzelnen Text-Stücken eine Bedeutung und CSS sagt dann, wie die einzelnen Text-Stücke aussehen sollen.
    Zu PostScript kann ich ehrlich gesagt nichts sagen, da ich mich damit noch nie beschäftigt habe.

    PHP/Perl/Python würde ich als Skript-Sprachen bzw. (serverseitige) Programmiersprachen bezeichnen. Theoretisch könnte man wohl auch in PHP/Perl/Python (= mit der entsprechenden Syntax) ein Betriebssystem basteln. Sofern es, wie du ja sagst, einen entsprechenden Compiler gäbe. Praktisch wird wohl niemand auf so eine Idee kommen.
    Ich sehe allerdings nicht so ganz den Zusammenhang zwischen Markdown/HTML (Auszeichnungssprachen) und Betriebssystemprogrammierung mit Script-Sprachen.

    Antworten Teilen
  8. von BastianBBux am 09.07.2013 (13:29 Uhr)

    Um Laien nicht zu verwirren vermeide ich bei der Erklärung des Unterschieds zwischen Programmiersprachen und Auszeichnungssprachen TUNLICHST das Wort Auszeichnungssprache. Stattdessen verwende ich die Worte Format und Struktur/Gliederung.
    Laien verstehen dann schneller die statische Komponente von Markups.
    Bei den Programmiersprachen wird es komplizierter, vor allem durch die mittlerweile doch starke Entwicklung von PHP hin zu einer klassischen Hochsprache mit all ihren Vor- und Nachteilen. Hier einen Strich zu ziehen und zu sagen, alles mit Interpreter ist automatisch Skriptsprache finde ich etwas gewagt, bzw. ebenfalls nicht der Realität gerecht werdend ... (und das sag ich als g'lernter C++er :-) ).

    @Dirk Was übrigens die Möglichkeit ein Betriebssystem zu programmieren betrifft damit zu tun haben soll, ist mir ein völliges Rätsel. Aber natürlich könnte man mit jeder beliebigen **Programmier**-sprache ein Betriebssystem programmieren, sogar mit Brainfuck, Ook!, oder möglicherweise sogar mit der Shakespeare Programming Language. Den Unterschied machen nur Arbeitsaufwand und Laufzeitperformanz. ;)
    Oder wie ich immer sag: Man soll nicht alles tun, nur weil man es tun könnte. ;)

    Antworten Teilen
  9. von BastianBBux am 09.07.2013 (13:37 Uhr)

    Ich muss mich korrigieren/relativieren, was PHP als Hochsprache betrifft: bei der Verwendung des Begriffs "klassische Hochsprache" in Zusammenhang mit PHP dachte ich diesfalls eigentlich an die Möglichkeiten in Bezug auf OOP und Typisierung und weniger an den Abstraktionslevel. ;)

    Antworten Teilen
  10. von BastianBBux am 09.07.2013 (13:44 Uhr)

    Und noch bzgl. Markdown, es gibt eine Erweiterung für TYPO3:
    http://typo3.org/extensions/repository/view/markdown_content

    schliesslich heisst ihr ja immer noch **t3**n ;)

    Antworten Teilen
  11. von Stephan am 09.07.2013 (15:05 Uhr)

    Danke an BastianBBux! Gerade wollte ich fragen, ob es schon ein TYPO3 Plugin zu Markdown gibt ;-). Was lernen wir: Immer bis zum Ende lesen!

    Antworten Teilen
  12. von tim am 09.07.2013 (17:54 Uhr)

    @BastianBBux: Bei PHP als Skriptsprache tu ich mich auch etwas schwer. Perl und Python (auch wenn ich beide noch nicht ernsthaft genutzt habe) dürften aber in die Kategorie fallen. PHP wird irgendwo schon interpretiert, andererseits ist es aber auch mehr als nur eine interpretierte Sprache. Eine Programmiersprache ist es auf jeden Fall.

    @Dirk: Könnte es sein, dass du Programmiersprachen mit Programmiersprachen zum Entwickeln eines OS gleich setzt? Falls dem so ist: Java wäre eine weitere ziemlich bekannte Programmiersprache, mit der man ebenfalls keine Betriebssysteme entwickelt (liegt in der Natur von Java).

    Antworten Teilen
  13. von Dirk am 09.07.2013 (22:14 Uhr)

    @tim:
    Ja, oft setze ich diesen Vergleich um den Unterschied zwischen z.B. Ansi C und HTML zu unterscheiden. PHP ist recht komplex, weshalb es dort nicht so leicht ist PHP nicht als Programmiersprache zu bezeichnen. Das bezeichne ich oft als Serversprachen. Java ist wiederum etwas ganz Spezielles. Java kann man wie C++ oder Ansi C Hardware-nah an das Gerät kompilieren. Dadurch gewinnt es drastisch an Performance und ist nicht mehr viel langsamer als Ansi C oder C++. Jedoch verliert es dann wie Ansi C und C++ die Fähigkeit auf unterschiedlichen Maschinen laufen zu können, was durch die Java VM (virtual machine) möglich gemacht wird.
    Und genau da ist der springende Punkt: Es läuft virtuell in einer Maschine. Theoretisch ist Java für ein Betriebssystem möglich. Und es gibt tatsächlich ein paar embedded devices, die auf Java Byte Code optimiert sind und nur unter einem (einfachen) Java Betriebssystem laufen. Wenn der Hardware-nahe Kompilierer von Java gut genug ist, sind Java-Betriebssysteme auch unter X86, X64, PowerPC u.s.w. möglich. Java wird ja dann wie C oder C++ dann assembliert.

    Der Zusammenhang zu Markdown: Es geht hier nun über Begriffsklärung, was man wie nennen sollte, weil im Artikel stand, dass es angeblich eine Programmiersprache sei. Ich nenne HTML eher Weboutfitting oder ähnliches, aber ich weigere mich es als Programmiersprache zu nennen, weil zur Entwicklung eine Betriebssystemes dort sehr sehr viel fehlen würde (auch wenn es sehr weit entfernt möglich wäre, aber dazu würde sehr viel fehlen - PHP, Python, Perl u.s.w. dagegen vermutlich nicht so viel, auch wenn sie in Echtzeit kompiliert werden müssen, falls sie nicht als Cache vorliegen - aber wie in Java ist Hardware-nahes kompilieren vielleicht auch möglich).

    Antworten Teilen
  14. von tim am 10.07.2013 (00:23 Uhr)

    Üblicherweise spricht man von einer Programmiersprache, wenn damit ein Algorihmus gelöst werden kann. Ergo: Wenn das Ding mindestens einmal Bedingungen und Sprungbefehle/Schleifen hat. Was wiederum bedeutet, das PHP, C, C++, C#, Java, JavaScript, Perl, Python, whatever... alles Programmiersprachen sind.
    HTML, Markdown und CSS dagegen NICHT. Man hat zwar auch so eine Art Bedingung, aber man kann diese nicht logisch miteinander verbinden/gruppieren. Und Schleifen (die ja letztendlich auch nur Bedingungen in Kombination mit Sprungbefehlen sind) gibt es ebenfalls nicht.
    Die Frage ist nur, wie man die gesamten Programmiersprachen etwas feiner gliedern kann. JavaScript würde wohl kaum jemand auf die gleiche Stufe mit C++ stellen. Die Einsatzzwecke sind einfach vollkommen verschieden.

    Java kann man "Hardware-nah an das Gerät kompilieren"?? Was ist denn hardware-fern an das Gerät kompilieren? Mit Java kann man NICHT direkt auf Hardwareebene arbeiten. Das genau ist ja das besondere Feature an Java. Java wird in einer JRE (Java Runtime Environment) ausgeführt, die wiederum in etwas deutlich hardwarenaherem (z.B. C) geschrieben ist. Dass man das ohne die JRE ausführen kann, wäre mir neu. Was man machen kann, ist über Java andere Java-fremde APIs ansteuern. Einige Math-Funktionen, die man in Java aufrufen kann, sind z.B. in C geschrieben - weil es deutlich schneller ist.
    Dass man in Java ein OS entwickeln kann, wäre mir daher neu. Man braucht immer eine JVM, die das eigentliche OS ausmachen. Ein Java-Programm ist dann nur reine Software, die auf dem Mini-OS läuft.
    "Wenn der Hardware-nahe Kompilierer von Java gut genug ist, sind Java-Betriebssysteme auch unter X86, X64, PowerPC u.s.w. möglich." Das ist Quatsch. Die JRE enthält KEINEN Compiler. Java-Code wird als Plain Text geschrieben, dann in Java-Bytecode kompiliert und dann in der JVM ausgeführt. Dem Compiler ist es da erst einmal piepegal, welche Prozessor-Architektur er bekommt (solange er eine JVM hat).
    Weboutfitting?! Okaaay... ich bezweifel, dass viele Webentwickler verstehen, was damit gemeint sein soll... Nenn es doch einfach Auszeichnungssprache... gegenüber einem Laien meinetwegen Computersprache, aber bitte kein komplett neues, wirres Wort. Ich statte das Web ja nicht mit HTML aus...
    Und komm von der Idee weg, dass eine Programmiersprache auch gleichzeitig für die Programmierung eines OS geeignet sein muss. In dem HTML, was wir kennen, wäre so etwas definitiv NICHT möglich. Um mit einem Prozessor wenigstens grundlegend sprechen zu können, braucht man ein "paar" Zeilen Assembler und darauf dann wiederum sehr low-levelige Sprachen (üblicherweise C) mit deutlich mehr Zeilen, die einzelne Systemprogramme bereitstellen und viele unschöne APIs später kann man dann anfangen, über höhere Programmiersprachen nachzudenken.
    Glaubst du, dass ein Prozessor von Haus aus weiß, wie er PHP, Python oder Perl zu kompilieren hat??
    Ich glaube, du vertauschst da eine ganze Menge! Im Zweifelsfall kann ein Besuch bei Wikipedia hilfreich sein...

    Antworten Teilen
  15. von Ju am 10.07.2013 (11:08 Uhr)

    Man kann sich natürlich ewig über die falsche Verwendung des Wortes "Programmiersprache" echauffieren.
    Viel problematischer finde ich die allgemeine Herangehensweise dieser "Erklärung für Laien":
    Nur weil man **so etwas** schreibt, heißt es noch lange nicht, dass dieses "so etwas" dann fett dargestellt wird!
    Markdown ist nicht für das Erscheinungsbild zuständig. Es ist lediglich ein strukturierendes Format, mit dem man einzelnen *Worten*, *Sätzen* und *Absätzen* verschiedene **Gewichtigkeiten** geben kann.
    Wie diese verschiedenen Gewichtigkeiten dann dargestellt werden ist Aufgabe von CSS.
    Das "strong" im HTML strong-Tag steht für charakterstark, nicht für fett.

    Antworten Teilen
  16. von Dirk am 13.07.2013 (23:54 Uhr)

    @tim:
    http://www.rtjcom.com/main.php?p=home
    Es gibt embedded devices. Irreführend war, dass es ein OS nur für Java-Programme ist und dort eine VM läuft. Das HEISST aber NICHT, dass virtuelle Maschinen nie als echte Maschinen realisierbar wäre.
    Da du von Informatik allgemein erstaunlich wenig Ahnung hast, lies bitte dies: http://www.cis.nctu.edu.tw/~wuuyang/papers/bytecode2X86.BRIEF.pdf
    => Wer darauf verweist, dass man sein Wissen von Wikipedia beziehen sollte, verheißt dies überhaupt nichts Gutes für den Werber für Wikipedia, wenn der Werber noch nicht einmal vor den möglicherweise irreführenden oder erfundenen Inhalten warnt wie Stalins Badezimmer http://www.berliner-zeitung.de/archiv/wikipedia-wie-ich-stalins-badezimmer-erschuf,10810590,10778230.html (was nach langer Zeit endlich in Wikipedia korrigiert werden konnte).

    Antworten Teilen
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Mehr zum Thema Markdown
Markdown im Team: Dieser Online-Editor macht’s möglich
Markdown im Team: Dieser Online-Editor macht’s möglich

Canvas ist ein webbasierter Text-Editor zum kollaborativen Arbeiten mit Markdown-Unterstützung. Wir haben für euch einen Blick auf die Web-App geworfen. » weiterlesen

Mehr als nur ein Markdown-Editor: Jotdown unterstützt To-do-Listen – und kann sogar rechnen
Mehr als nur ein Markdown-Editor: Jotdown unterstützt To-do-Listen – und kann sogar rechnen

Jotdown ist nicht nur ein einfacher Markdown-Editor für den Mac, er eignet sich auch hervorragend zum Führen von To-do-Listen und beherrscht einige mathematische Funktionen. Wir haben die App für … » weiterlesen

Ein Hauch von Markdown für WordPress: Version 4.3 bekommt besseren Editor
Ein Hauch von Markdown für WordPress: Version 4.3 bekommt besseren Editor

WordPress 4.3 ist als „Billie“ veröffentlicht worden. Unter anderem bringt die neue Version bessere Passwörter und die Verwaltung von Menüs im Customizer mit. Die neue Version wurde nach der … » weiterlesen

Alle Hefte Jetzt abonnieren – für nur 35 €

Kennst Du schon unser t3n Magazin?