Skip to content

Ausrichtung im Detail: Linksbündig, Zentriert, Rechtsbündig

Was Sie nach dieser Lektion können

  • Die Syntax und Wirkung der drei Ausrichtungsarten beherrschen
  • Verstehen, wie Trennzeilen die Ausrichtung festlegen
  • Den Arbeitsprinzip des Zellenfüllalgorithmus kennenlernen
  • Wissen, warum sich Trennzeilen automatisch an die Breite anpassen

Ihr aktuelles Problem

Die KI hat eine Tabelle generiert, aber die Spaltenausrichtung ist nicht sehr schön:

markdown
| 名称 | 类型 | 描述 |
|--- | --- | ---|
| 用户 | string | 用户名 |
| 年龄 | number | 年龄 |
| is_active | boolean | 是否激活 |

Sie möchten bestimmte Spalten zentrieren oder rechtsbündig ausrichten, um die Tabelle lesbarer zu machen, wissen aber nicht, wie Sie das angeben.

Wann Sie diesen Trick anwenden

  • Sie möchten bestimmte Spalten zentrieren (z. B. Status, Tags)
  • Sie möchten Zahlenspalten rechtsbündig ausrichten (für bessere Vergleichbarkeit)
  • Sie möchten Textspalten linksbündig ausrichten (Standardverhalten)
  • Sie möchten das Implementierungsprinzip der Ausrichtung verstehen

Kernidee: Trennzeilen bestimmen die Ausrichtung

Die Ausrichtung von Markdown-Tabellen wird nicht in jeder Zeile angegeben, sondern einheitlich durch die Trennzeile festgelegt.

Die Syntax der Trennzeile ist: :?-+:? (Doppelpunkt + Bindestrich + Doppelpunkt)

Position des DoppelpunktsAusrichtungBeispiel
Links und rechtsZentriert:---:
Nur rechtsRechtsbündig---:
KeinerLinksbündig--- oder :---

Jede Zelle der Trennzeile entspricht der Ausrichtung einer Spalte. Das Plugin formatiert die gesamte Spalte nach dieser Regel.

Machen Sie mit: Drei Ausrichtungsarten

Schritt 1: Linksbündig (Standard)

Warum

Linksbündig ist das Standardverhalten von Tabellen und eignet sich für textbasierte Daten.

Syntax

markdown
| 名称 | 描述 |
| :--- | :--- |    ← Doppelpunkt links oder kein Doppelpunkt bedeutet linksbündig
| 用户 | 用户名 |

Was Sie sehen sollten

markdown
| 名称   | 描述   |
|--- | ---|
| 用户   | 用户名 |

Die Trennzeile wird als :--- (Linksbündig-Markierung) angezeigt, der Text ist linksbündig ausgerichtet.

Quellcode-Implementierung

typescript
// getAlignment-Funktion: Analysiert die Ausrichtung
function getAlignment(delimiterCell: string): "left" | "center" | "right" {
  const trimmed = delimiterCell.trim()
  const hasLeftColon = trimmed.startsWith(":")
  const hasRightColon = trimmed.endsWith(":")

  if (hasLeftColon && hasRightColon) return "center"
  if (hasRightColon) return "right"
  return "left"  // Standardmäßig left zurückgeben
}

Quellcode-Position: index.ts:141-149

Logik-Erklärung

  • Doppelpunkt links und rechts (:---:) → Gibt "center" zurück
  • Nur Doppelpunkt rechts (---:) → Gibt "right" zurück
  • Andere Fälle (--- oder :---) → Gibt "left" zurück (Standard)

Schritt 2: Zentriert

Warum

Zentriert eignet sich für Status-Tags, kurze Texte, Überschriften und andere Inhalte, die visuell zentriert werden sollen.

Syntax

markdown
| 名称 | 状态 | 描述 |
|--- | --- | --- | ---|
| 用户 | 激活 | 用户名 |

Was Sie sehen sollten

markdown
| 名称   |  状态  | 描述   |
|--- | --- | ---|
| 用户   |  激活  | 用户名 |

Der "激活" in der mittleren Spalte wird zentriert angezeigt, die Trennzeile wird als :---: (Zentriert-Markierung) angezeigt.

Formatierungsprinzip der Trennzeile

Die Formatierung der Trennzeilen-Zelle wird von der Funktion formatSeparatorCell verarbeitet:

typescript
function formatSeparatorCell(width: number, align: "left" | "center" | "right"): string {
  if (align === "center") return ":" + "-".repeat(Math.max(1, width - 2)) + ":"
  if (align === "right") return "-".repeat(Math.max(1, width - 1)) + ":"
  return "-".repeat(width)
}

Quellcode-Position: index.ts:213-217

Mathematisches Prinzip der zentrierten Ausrichtung

Das Format der zentrierten Trennzeile ist: : + Bindestrich + :

ZielbreiteBerechnungsformelErgebnis
3: + -*1 + ::-:
5: + -*3 + ::---:
10: + -*8 + ::--------:

Math.max(1, width - 2) stellt sicher, dass mindestens 1 Bindestrich erhalten bleibt, um zu vermeiden, dass bei einer Breite von 2 :: entsteht (keine Trennwirkung).

Schritt 3: Rechtsbündig

Warum

Rechtsbündig eignet sich für Zahlen, Beträge, Daten und andere Daten, die von rechts nach links verglichen werden müssen.

Syntax

markdown
| 名称 | 价格 | 数量 |
| :--- | ---: | ---: |    ← Doppelpunkt rechts bedeutet rechtsbündig
| 商品 | 99.9 | 100 |

Was Sie sehen sollten

markdown
| 名称   | 价格 | 数量 |
|--- | --- | ---|
| 商品   |  99.9 |  100 |

Zahlen sind rechtsbündig ausgerichtet, was den Größenvergleich erleichtert.

Mathematisches Prinzip der rechtsbündigen Ausrichtung

Das Format der rechtsbündigen Trennzeile ist: Bindestrich + :

ZielbreiteBerechnungsformelErgebnis
3-*2 + :--:
5-*4 + :----:
10-*9 + :---------:

Math.max(1, width - 1) stellt sicher, dass mindestens 1 Bindestrich erhalten bleibt.

Zellenfüllalgorithmus

Wie entscheidet das Plugin, wie viele Leerzeichen auf beiden Seiten einer Zelle gefüllt werden sollen? Die Antwort liegt in der Funktion padCell.

Quellcode-Implementierung

typescript
function padCell(text: string, width: number, align: "left" | "center" | "right"): string {
  const displayWidth = calculateDisplayWidth(text)  // Berechnet die Anzeigebreite
  const totalPadding = Math.max(0, width - displayWidth)

  if (align === "center") {
    const leftPad = Math.floor(totalPadding / 2)
    const rightPad = totalPadding - leftPad
    return " ".repeat(leftPad) + text + " ".repeat(rightPad)
  } else if (align === "right") {
    return " ".repeat(totalPadding) + text
  } else {
    return text + " ".repeat(totalPadding)
  }
}

Quellcode-Position: index.ts:198-211

Füllregeln

AusrichtungLinke FüllungRechte FüllungBeispiel (Zielbreite 10, Text "abc")
Linksbündig0totalPaddingabc
Zentriertfloor(total/2)total - floor(total/2) abc
RechtsbündigtotalPadding0 abc

Mathematische Details der zentrierten Ausrichtung

Math.floor(totalPadding / 2) stellt sicher, dass die linke Füllung eine ganze Zahl ist, und der zusätzliche Platz wird rechts hinzugefügt.

ZielbreiteTextbreitetotalPaddingLinke FüllungRechte FüllungErgebnis
10373 (7÷2=3.5→3)4 (7-3) abc
11384 (8÷2=4)4 (8-4) abc
12394 (9÷2=4.5→4)5 (9-4) abc

Vollständiges Beispiel

Eingabetabelle (verschiedene Ausrichtungen für verschiedene Spalten):

markdown
| 名称 | 状态 | 价格 | 描述 |
|--- | --- | --- | ---|
| 商品A | 激活 | 99.9 | 这是一个商品 |
| 商品B | 停用 | 199.0 | 这是另一个商品 |

Formatiertes Ergebnis:

markdown
| 名称   |  状态  | 价格 | 描述         |
|--- | --- | --- | ---|
| 商品A  |  激活  |  99.9 | 这是一个商品 |
| 商品B  |  停用  | 199.0 | 这是另一个商品 |

Ausrichtung jeder Spalte:

SpaltennameTrennzeilen-SyntaxAusrichtungErklärung
名称:---LinksbündigText linksbündig
状态:---:ZentriertText zentriert
价格---:RechtsbündigZahlen rechtsbündig
描述:---LinksbündigText linksbündig

Kontrollpunkte

Nach Abschluss dieser Lektion sollten Sie folgende Fragen beantworten können:

  • [ ] Wie geben Sie eine zentrierte Ausrichtung an? (Antwort: Trennzeile mit :---:)
  • [ ] Wie geben Sie eine rechtsbündige Ausrichtung an? (Antwort: Trennzeile mit ---:)
  • [ ] Was ist die Standardsyntax für linksbündig? (Antwort: --- oder :---)
  • [ ] Warum wird bei zentrierter Ausrichtung Math.floor(totalPadding / 2) verwendet? (Antwort: Um sicherzustellen, dass die linke Füllung eine ganze Zahl ist, der zusätzliche Platz wird rechts hinzugefügt)
  • [ ] Was bedeutet :---: in der Trennzeile? (Antwort: Zentriert-Markierung, links und rechts jeweils ein Doppelpunkt, in der Mitte Bindestriche)

Häufige Fehler

Häufige Missverständnisse

Missverständnis: Jede Zeile muss die Ausrichtung angeben

Tatsache: Nein. Nur die Trennzeile gibt die Ausrichtung an, Datenzeilen werden automatisch spaltenweise ausgerichtet.

Die Trennzeile ist die "Konfiguration", Datenzeilen sind der "Inhalt". Eine Konfigurationszeile reicht aus.

Wichtig

Die Position der Doppelpunkte in der Trennzeile muss mit den Spalten übereinstimmen.

Falsches BeispielProblem
`:---
`:---

Die Anzahl der Spalten in der Trennzeile muss mit der Anzahl der Spalten in der Kopfzeile und den Datenzeilen übereinstimmen!

Zusammenfassung dieser Lektion

AusrichtungTrennzeilen-SyntaxAnwendungsfall
Linksbündig--- oder :---Texte, beschreibende Daten (Standard)
Zentriert:---:Status-Tags, kurze Texte, Überschriften
Rechtsbündig---:Zahlen, Beträge, Daten

Wichtige Funktionen:

FunktionZweckQuellcode-Position
getAlignment()Analysiert die Ausrichtung der Trennzeilen-Zelle141-149
padCell()Füllt Zellen auf die angegebene Breite198-211
formatSeparatorCell()Formatiert Trennzeilen-Zellen213-217

Merksatz:

Doppelpunkte links und rechts für zentriert, Doppelpunkt rechts für rechtsbündig, Kein Doppelpunkt standardmäßig links, in der Trennzeile werden die Regeln festgelegt.

Vorschau auf die nächste Lektion

In der nächsten Lektion lernen wir Häufige Probleme: Was tun, wenn die Tabelle nicht formatiert wird.

Sie werden lernen:

  • Wie Sie invalid structure-Fehler schnell lokalisieren
  • Methoden zur Fehlersuche bei Konfigurationsproblemen
  • Lösungen für häufige Tabellenprobleme

Anhang: Quellcode-Referenz

Klicken, um Quellcode-Positionen anzuzeigen

Aktualisiert am: 2026-01-26

FunktionDateipfadZeilennummer
Ausrichtungsanalyseindex.ts141-149
Zellenfüllungindex.ts198-211
---------
Ausrichtungsanwendungindex.ts107-113

Wichtige Funktionen:

  • getAlignment(delimiterCell: string): Analysiert die Ausrichtung der Trennzeilen-Zelle

    • Gibt "left" | "center" | "right" zurück
    • Logik: Doppelpunkt links und rechts → zentriert, nur Doppelpunkt rechts → rechtsbündig, andere → linksbündig
  • padCell(text, width, align): Füllt Zellen auf die angegebene Breite

    • Berechnet die Differenz zwischen Anzeigebreite und Zielbreite
    • Verteilt linke und rechte Füllung je nach Ausrichtung
    • Verwendet Math.floor(totalPadding / 2) für zentriert, um sicherzustellen, dass die linke Füllung eine ganze Zahl ist
  • formatSeparatorCell(width, align): Formatiert Trennzeilen-Zellen

    • Zentriert: : + -*(width-2) + :
    • Rechtsbündig: -*(width-1) + :
    • Linksbündig: -*width
    • Verwendet Math.max(1, ...) um sicherzustellen, dass mindestens 1 Bindestrich erhalten bleibt