Markdown-Codeblöcke: Vollständiger Leitfaden mit Syntax, Sprachen und Beispielen
Meistern Sie Markdown-Codeblöcke: Syntax-Highlighting, Diff und Dateiname.
Hier bewerte ich Codeblock-Optionen in Markdown – wie man die Programmiersprache, Diff-Formatierung und den Dateinamen des Codeblocks festlegt.
Dieser Leitfaden ist Teil unseres Dokumentations-Tools 2026: Markdown, LaTeX, PDF & Druckworkflow-Hubs.

Übersicht zu Markdown-Codeblöcken
Markdown-Codeblöcke zeigen Code oder vorformatierten Text in Markdown-Dokumenten an, wobei die Formatierung beibehalten wird und optional Syntax-Highlighting aktiviert werden kann. Es gibt zwei Haupttypen der Codeformatierung in Markdown: Inline-Code und Codeblöcke.
Typen von Markdown-Codeblöcken
| Typ | Syntaxbeispiel | Verwendungsfall | Syntax-Highlighting | Hinweise |
|---|---|---|---|---|
| Inline-Code | `code` |
Kurze Ausschnitte im Text | Nein | Für einzelne Wörter oder Befehle |
| Einrückter Block | (4 Leerzeichen oder 1 Tab) | Mehrzeiliger Code (älterer Stil) | Nein | Nicht empfohlen für moderne Nutzung |
| Gefüllter Block | ```lang … ``` |
Mehrzeiliger Code (moderner Stil) | Ja | Präferierte Methode |
Wichtige Unterschiede
- Inline-Code verwendet einzelne Backticks (
`) und ist für kurze Codeausschnitte innerhalb eines Satzes geeignet. - Einrückte Codeblöcke verwenden vier Leerzeichen oder einen Tab am Anfang jeder Zeile. Sie unterstützen keine Syntax-Highlighting und sind in modernem Markdown selten.
- Gefüllte Codeblöcke verwenden dreifache Backticks (
```) oder Tilden (~~~) vor und nach dem Code. Dies ist die bevorzugte Methode, insbesondere auf Plattformen wie GitHub, weil:- Sie leichter zu lesen und zu schreiben sind.
- Sie können die Programmiersprache unmittelbar nach den öffnenden Backticks für Syntax-Highlighting festlegen.
- Sie behalten die Formatierung bei und unterstützen mehrzeiligen Code.
Beispiel eines gefüllten Codeblocks mit Syntax-Highlighting:
Wenn wir den folgenden markdown-formatierten Text haben:
```python
def hello():
print("Hello, world!")
```
Der gerenderte Ausgabe sieht so aus:
def hello():
print("Hello, world!")
Best Practices für Markdown-Codeblöcke
- Verwenden Sie gefüllte Codeblöcke (dreifache Backticks) für mehrzeiligen Code, um Klarheit und Kompatibilität über Plattformen hinweg zu gewährleisten.
- Legen Sie die Sprache nach den öffnenden Backticks fest, um Syntax-Highlighting zu ermöglichen (z. B.
```python). - Verwenden Sie Inline-Code für kurze Ausschnitte oder Befehle im Text.
- Vermeiden Sie einrückte Codeblöcke, es sei denn, sie sind für die Kompatibilität mit älteren Systemen erforderlich, da sie keine Syntax-Highlighting unterstützen und weniger lesbar sein können.
- Setzen Sie eine leere Zeile vor und nach gefüllten Codeblöcken, um die Lesbarkeit im Roh-Text-Markdown zu verbessern.
Besondere Funktionen
- Einige Plattformen unterstützen zusätzliche Sprachidentifikatoren wie
diff, um Codeänderungen anzuzeigen, was hervorhebt, welche Zeilen hinzugefügt oder entfernt wurden, in Code-Reviews. - Um Backticks innerhalb eines Codeblocks anzuzeigen, umschließen Sie den Block mit einer größeren Anzahl von Backticks (z. B. vier Backticks, um drei Backticks innerhalb anzuzeigen).
Kurzfassung der Referenz
| Funktion | Inline-Code | Einrückter Block | Gefüllter Block |
|---|---|---|---|
| Mehrzeilensupport | Nein | Ja | Ja |
| Syntax-Highlighting | Nein | Nein | Ja |
| Empfohlen für Code | Nein | Nein | Ja |
| Einfachheit der Verwendung | Einfach | Mittel | Einfach |
Verwenden Sie gefüllte Codeblöcke mit einer Sprachidentifikation für die beste Lesbarkeit und Syntax-Highlighting. Reservieren Sie Inline-Code für kurze Ausschnitte und vermeiden Sie einrückte Blöcke, es sei denn, sie sind für die Kompatibilität erforderlich.
Codeblöcke passen natürlicherweise zu Tabellen in Markdown um gut strukturierte technische Dokumentation zu erstellen.
Diff-Syntax-Highlighting
Diff-Syntax-Highlighting ermöglicht es, Codeänderungen klar darzustellen – nützlich in Dokumentationen, Code-Reviews und technischen Blogs.
- Verwenden Sie gefüllte Codeblöcke mit dreifachen Backticks (```) um Ihren Block zu starten und zu beenden.
- Legen Sie
diffals Sprachidentifikator unmittelbar nach den öffnenden Backticks fest.
Beispiel:
- alte Zeile, die entfernt wird
+ neue Zeile, die hinzugefügt wird
unveränderte Zeile
- Zeilen, die mit
-beginnen, werden als Löschungen hervorgehoben (meist in Rot). - Zeilen, die mit
+beginnen, werden als Hinzufügungen hervorgehoben (meist in Grün). - Zeilen ohne Präfix werden nicht besonders hervorgehoben.
Best Practices:
- Setzen Sie eine leere Zeile vor und nach Ihrem Codeblock für bessere Lesbarkeit im Roh-Text-Markdown.
- Beachten Sie, dass Diff-Highlighting nur ganze Zeilen basierend auf dem führenden Zeichen färbt; es markiert keine inhaltlichen Änderungen innerhalb einer Zeile.
Tipp: Diff-Highlighting wird weit verbreitet auf GitHub, GitLab und den meisten Markdown-Renderern unterstützt, wodurch es eine zuverlässige Wahl für die Kommunikation von Codeänderungen darstellt.
Unterstützte Sprachen für Syntax-Highlighting
Die genaue Menge an unterstützten Sprachen hängt von der Renderer- oder Plattform ab, die Sie verwenden. Markdown übergibt den Sprachidentifikator an den Rendering-Engine, die die entsprechende Syntax-Highlighting anwendet. Dies ist wichtig, wenn HTML in Markdown mit Python konvertiert wird, da <code>-Tags mit Sprachklassenattributen (z. B. class="language-python") direkt auf diese Identifikatoren in dem gefüllten Block abgebildet werden.
Gängig unterstützte Sprachen auf den größten Plattformen (GitHub, VS Code, Bitbucket, Docusaurus, ReadMe):
- Web & Skripting:
javascript(js),typescript(ts),html,css,json,xml,yaml,shell/bash(sh, bash, shell, zsh) - Programmierung:
python(py),java,c,cpp(c++),csharp(c#),php,ruby,go,rust,scala,swift,kotlin,objective-c - Daten & Abfragen:
sql,r,matlab - Markup & Konfiguration:
markdown,ini,toml,dockerfile,makefile - Spezielle:
diff,mermaid,geojson,topojson,stl(für Diagramme und Datenvisualisierungen auf GitHub) - Andere:
jsx,tsx,perl,lua,julia,dart,groovy,powershell,vb,elixir,erlang,fortran,haskell,lisp,schemeund viele mehr
Wie man eine Sprache festlegt:
```python
def hello():
print("Hello, world!")
```
Sprachidentifikatoren, die von den meisten Renderern unterstützt werden:
| Sprache | Gängige Identifikator(e) |
|---|---|
| Python | python, py |
| JavaScript | javascript, js |
| TypeScript | typescript, ts |
| Java | java |
| C | c |
| C++ | cpp, c++ |
| C# | csharp, cs, c# |
| Go | go |
| Ruby | ruby, rb |
| PHP | php |
| Rust | rust |
| Swift | swift |
| Kotlin | kotlin |
| HTML | html |
| CSS | css |
| Shell/Bash | shell, bash, sh, zsh |
| SQL | sql |
| JSON | json |
| YAML | yaml, yml |
| Markdown | markdown, md |
| Perl | perl |
| Lua | lua |
| R | r |
| Matlab | matlab |
| Makefile | makefile |
Hinweis: Die meisten Renderer sind bei Sprachnamen case-insensitiv. Wenn Sie einen nicht unterstützten Identifikator verwenden, wird der Codeblock als einfacher Text gerendert.
Vollständige Liste der unterstützten Sprachen finden Sie:
- GitHub: Verwendet Linguist, unterstützt hunderte von Sprachen.
- VS Code & viele Web-Renderer: Verwenden highlight.js oder Pygments – siehe deren Dokumentation für umfassende Listen.
- Bitbucket: Verweist auf CodeMirror Modi und Pygments Lexer.
Dateiname in einem Markdown-Codeblock festlegen
Das Anzeigen des Dateinamens neben einem Codeblock hilft Lesern, zu erkennen, zu welcher Datei ein Ausschnitt gehört. Die Unterstützung variiert je nach Plattform.
1. Dateiname im Codeblock-Label (Metasyntax)
Einige Markdown-Engines (bestimmte statische Seiten-Generatoren und Dokumentationsplattformen) unterstützen eine Metasyntax, bei der Sie den Dateinamen nach der Sprache anhängen, getrennt durch ein Doppelpunkt:
```js:app.js
console.log("Hello, world!");
```
Dies zeigt den Dateinamen über oder neben dem Codeblock an. Der Renderer dieses Sites (Hugo) unterstützt dies nicht:
console.log("Hello, world!");
Hinweis: Dies wird nicht unterstützt, wenn GitHub-flavored Markdown verwendet wird.
2. Manueller Dateiname-Überschrift oder Inline-Code
Für universelle Kompatibilität (einschließlich GitHub, Stack Overflow und den meisten Markdown-Renderern), setzen Sie den Dateinamen über dem Codeblock mit fettgedrucktem Inline-Code:
**`app.js`**
```js
console.log("Hello, world!");
```
Oder mit einer Überschrift:
#### `app.js`
```js
console.log("Hello, world!");
```
Dies funktioniert überall und verknüpft visuell den Dateinamen mit dem Codeblock.
3. Dateiname als Kommentar innerhalb des Codes
Fügen Sie den Dateinamen als Kommentar innerhalb des Codeblocks selbst ein:
```js
// app.js
console.log("Hello, world!");
```
Dies ist besonders nützlich, wenn Sie den Dateinamen sichtbar haben möchten, wenn der Code kopiert wird.
Kompatibilitätsübersicht
| Methode | GitHub | Docs/Blogs | Universal |
|---|---|---|---|
Metasyntax (z. B. :app.js) |
Nein | Manchmal | Nein |
| Überschrift/Inline-Code oben | Ja | Ja | Ja |
| Kommentar innerhalb des Codes | Ja | Ja | Ja |
Verwenden Sie fettgedruckten Inline-Code über dem Codeblock für maximale Kompatibilität, und erwägen Sie einen Kommentar innerhalb des Codes für Klarheit, wenn Sie über Plattformen hinweg teilen.
Backticks in Codeblöcken escapen
Um Backtick-Felder innerhalb eines Codeblocks anzuzeigen – zum Beispiel wenn Sie Dokumentation über Markdown selbst schreiben – verschachteln Sie den Block in einer größeren Anzahl von Backticks:
````markdown
```python
# Dieser dreifach-backtick-Feld ist in einem vier-backtick-Feld
print("hello")
```
````
Durch das Verwenden von vier Backticks als äußeren Feld können Sie Beispiele mit dreifachen Backticks innerhalb darstellen, was für Markdown-Tutorials und Cheatsheets nützlich ist.
Hugo-spezifisch: Der Highlight-Shortcode
Wenn Sie Hugo verwenden, bietet der integrierte highlight-Shortcode mehr Kontrolle als einfache gefüllte Blöcke, einschließlich Zeilennummern und hervorgehobenen Zeilen:
{{< highlight python "linenos=true,hl_lines=2 4" >}}
def greet(name):
print(f"Hello, {name}!")
greet("world")
{{< /highlight >}}
Optionen:
linenos=true— Zeilennummern anzeigenhl_lines=2 4— Zeilen 2 und 4 hervorhebenlinenostart=10— Zeilennummerierung ab 10 beginnen
Dies ist besonders nützlich in Tutorials oder Dokumentationen, in denen Sie Aufmerksamkeit auf bestimmte Zeilen lenken möchten. Siehe den Markdown-CheatSheet für weitere Formatierungsoptionen und den Hugo-CheatSheet für eine umfassendere Referenz zu Hugo-Befehlen und -Vorlagen.