Markdown hat zwei Arten, etwas als Code zu kennzeichnen: Backticks um ein paar Wörter mitten im Satz, und einen eingezäunten Block für alles Längere. Die Blockform trägt außerdem einen Sprachnamen, und der ist es, der die Syntaxhervorhebung in Vorschauen, in Exporten und auf GitHub einschaltet.

Code — inline und eingezäunt
Markdown
Führ zuerst `npm install` aus, dann bearbeite `vite.config.js`.

```js
function greet(name) {
  return `Hallo, ${name}`
}
```

    Vier Leerzeichen Einrückung
    ergeben auch einen Codeblock.
Preview

Führ zuerst npm install aus, dann bearbeite vite.config.js.

function greet(name) {
  return `Hallo, ${name}`
}
Vier Leerzeichen Einrückung
ergeben auch einen Codeblock.

Inline-Code

Umschließ ihn mit einfachen Backticks. Nimm ihn für Dateinamen, Befehle, Funktionsnamen, Schlüssel, Werte — alles, was die lesende Person tippen oder kopieren könnte.

Innerhalb eines Code-Spans hört Markdown auf zu deuten: *nicht kursiv* bleibt als Sternchen stehen. Damit ist Inline-Code der einfachste Weg, Syntax zu zeigen, ohne sie zu escapen.

Eingezäunte Codeblöcke

Drei Backticks auf einer eigenen Zeile, der Code, drei Backticks zum Schließen. Die Sprache kommt direkt hinter den öffnenden Zaun:

Markdown
```python
def greet(name):
    return f"Hallo, {name}"
```
Preview
def greet(name):
    return f"Hallo, {name}"

Den Sprachnamen liest der Highlighter. Gebräuchliche: js, ts, python, bash, json, yaml, html, css, sql, swift, go, rust, diff. Ein unbekannter Name schadet nicht — du bekommst einen Block ohne Hervorhebung.

Lässt du die Sprache weg, bekommst du trotzdem einen Codeblock, nur ohne Farben. Schreib sie trotzdem hin: Sie kostet vier Zeichen und macht einen langen Block erst lesbar.

Tilden gehen auch

~~~ öffnet und schließt einen Zaun genau wie Backticks:

~~~sql
SELECT * FROM documents WHERE pinned = 1;
~~~

Das hilft, wenn der Code, den du zeigst, selbst drei Backticks enthält.

Backticks zeigen

Um einen Backtick innerhalb von Inline-Code zu zeigen, umschließ den Span mit mehr Backticks, als der Inhalt benutzt, und lass auf jeder Seite ein Leerzeichen:

Markdown
Nimm `` ` `` für Inline-Code.

Nimm ``` `` ``` für einen Span, der einen Backtick enthält.
Preview

Nimm ` für Inline-Code.

Nimm `` für einen Span, der einen Backtick enthält.

Dasselbe skaliert für Blöcke: Um einen Zaun aus drei Backticks zu zeigen, umschließ ihn mit vier. So ist jedes Beispiel auf dieser Seite geschrieben.

Die Vier-Leerzeichen-Form

Einen Block um vier Leerzeichen einzurücken macht ihn ebenfalls zu Code. Das ist die ursprüngliche Syntax von 2004, sie funktioniert überall noch, und sie hat zwei echte Nachteile: Sie kann keine Sprache tragen, und man löst sie leicht versehentlich aus, wenn man etwas der Lesbarkeit halber einrückt.

Zäune sind fast immer besser. Der eine Ort, an dem die Einrückung noch gewinnt, ist innerhalb eines Listenpunkts, wo sie sich verlässlicher zusammensetzt.

Diff-Blöcke

Als Sprache diff anzugeben liefert rote und grüne Zeilen, die klarste Art, eine Änderung zu zeigen:

Markdown
```diff
- const md = new MarkdownIt({ html: true })
+ const md = new MarkdownIt({ html: false })
```
Preview
- const md = new MarkdownIt({ html: true })
+ const md = new MarkdownIt({ html: false })

Häufige Fehler

Den Zaun nicht schließen. Alles nach dem öffnenden Zaun wird bis zum Dokumentende zu Code. Wenn eine Seite plötzlich in Monospace erscheint, ist das der Grund.

Ein Sprachname mit Leerzeichen. ```java script ist kein JavaScript. Die Sprache ist nur das erste Wort.

Zäune in einer Liste mit falscher Einrückung. Ein eingezäunter Block in einem Listenpunkt muss mit dem Text des Punktes fluchten, sonst endet die Liste am Zaun.

Inline-Code zur Hervorhebung. Backticks heißen „das ist Code", nicht „das ist wichtig". Nimm **fett** zum Hervorheben — Screenreader und Suchmaschinen behandeln beides verschieden.

Häufige Fragen

Wie füge ich in Markdown einen Codeblock ein?

Setz drei Backticks auf eine eigene Zeile, deinen Code darunter und drei Backticks zum Schließen. Für Syntaxhervorhebung schreibst du direkt hinter den öffnenden Zaun einen Sprachnamen — ```python.

Wie zeige ich in Markdown einen Backtick?

Umschließ den Span mit mehr Backticks, als er enthält, und lass an jedem Ende ein Leerzeichen: ` ergibt einen einzelnen Backtick. Für einen ganzen eingezäunten Block öffnest und schließt du mit vier Backticks statt mit drei.

Welche Sprachen kann ich für die Syntaxhervorhebung angeben?

Das hängt vom Highlighter hinter deinem Renderer ab, aber die gebräuchlichen Namen — js, python, bash, json, html, css, sql, swift, go, rust, yaml, diff — werden fast überall unterstützt. Ein nicht erkannter Name erscheint schlicht ohne Farben.

Was ist der Unterschied zwischen eingezäunten und eingerückten Codeblöcken?

Eingezäunte Blöcke werden durch ``` oder ~~~ begrenzt und können eine Sprache nennen; eingerückte Blöcke sind Zeilen mit vier Leerzeichen Einrückung und können das nicht. Zäune sind klarer und das, was moderne Dokumente benutzen, aber die Einrückung setzt sich innerhalb von Listenpunkten verlässlicher zusammen.

Warum erscheint meine ganze Seite als Code?

Ein nicht geschlossener Zaun. Such nach einem ```, das keinen Partner hat — alles danach gilt bis zum Dateiende als Code.