Markdown wurde erfunden von John Gruber und auf seinem Blog Daring Fireball https://daringfireball.net/ erstmals veröffentlicht. Wahrscheinlich, um einfacher Blog Artikel zu verfassen und weniger Zeit mit der Formatierung zu verbringen.
Es bedient sich einer einfachen Syntax, der Markdown Syntax um als Nicht-Techniker HTML zu erzeugen.
Der Prozess ist dann:
Absätze werden so zum Beispiel durch eine Leerzeile repräsentiert.
HTML Tags werden durch einfache Zeichen wie z.b. *
ersetzt
*em*
**strong**
wird zu
<em>em</em>
<strong>strong</strong>
Ein Markdown spezifisches Sonderzeichen kann durch einen vorgestellten Backslash \
’escaped’ werden, also von seiner umformenden Funktion befreit werden.
\*this text is surrounded by literal asterisks\*
Bei Block Tags müssen die Weichen einfach am Anfang der jeweiligen Zeile stehen, aber dafür nicht zwingend geschlossen werden.
Durch das nicht mehr nötige schliessen von Tags wird die Einfachheit sehr deutlich.
# Überschrift 1
Das entsprich einem: <h1> Überschrift 1 </h1>
## Überschrift 2
Das einem <h2> Überschrift 2 </h2>
### Überschrift 3
Einem <h3> Überschrift 3 </h3>
Links und andere Bilder werden auch durch Zeichen mit einer besonderen Bedeutung dargestellt
Eine klickbare URL im Text wird nach Standard so dargestellt: <http://www.example.com>
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
<p>This is <a href="http://example.com/" title="Title">an example</a> inline link.</p>
<p><a href="http://example.net/">This link</a> has no title attribute.</p>
Und das entspricht einem Bild
![Alt text](/path/to/img.jpg "Optional title")
Michel Fortin hat Markdown zu PHP portiert und zu Markdown Extra https://michelf.ca/projects/php-markdown/extra/ erweitert.
Er erlaubt zusätzlich Tabellen
First Header | Second Header |
---|---|
Content Cell | Content Cell |
Content Cell | Content Cell |
| First Header | Second Header |
| ------------- | ------------- |
| Content Cell | Content Cell |
| Content Cell | Content Cell |
Über die Jahre haben sich viele Variationen herausgebildet, sogenannte Markdown Flavors https://github.com/commonmark/commonmark-spec/wiki/Markdown-Flavors
Common Mark https://commonmark.org/ versucht die ursprüngliche Spezifikation um fehlende und mehrdeutige Element zu bereinigen und zusätzlich einen standardisierten Test anzubieten, der die Kompatibilität einer Implementierung überprüfbar macht.