Eine Checkliste ist eine gewöhnliche Aufzählung, bei der jeder Punkt mit einem Paar eckiger Klammern beginnt. Leere Klammern sind ein nicht angekreuztes Kästchen, ein x dazwischen ein angekreuztes. Das ist die Syntax hinter jeder To-do-Liste, jeder Checkliste in einem Pull Request und jeder README, die Fortschritt festhält.
- [x] Entwurf schreiben
- [ ] Überarbeiten
- [ ] Als PDF exportieren
- [x] Ränder wählen
- [ ] Seitenzahlen ergänzen
- [ ] Verschicken- [x] Entwurf schreiben
- [ ] Überarbeiten
- [ ] Als PDF exportieren
- [x] Ränder wählen
- [ ] Seitenzahlen ergänzen
- [ ] Verschicken
Die Syntax
- [ ] Nicht erledigt
- [x] Erledigt- [ ] Nicht erledigt
- [x] Erledigt
Drei Dinge müssen stimmen:
- Es muss ein Listenpunkt sein. Das
-(oder*, oder+) kommt zuerst. Klammern auf einer eigenen Zeile sind nur Klammern. - Ein Leerzeichen im leeren Kästchen.
- []ist kein Kästchen,- [ ]schon. - Ein Leerzeichen nach der schließenden Klammer.
- [x]Erledigtscheitert,- [x] Erledigtfunktioniert.
Ein großes X funktioniert in den meisten Renderern genauso wie ein kleines, aber klein ist die Konvention.
Wo die Kästchen anklickbar sind
Das Kästchen wird als echtes <input type="checkbox"> gesetzt, und ob du es anklicken kannst, hängt ganz davon ab, wo das Dokument angezeigt wird:
- GitHub und GitLab, in Issues, Pull Requests und README-Dateien: anklickbar, und ein Häkchen ändert das darunterliegende Markdown für alle.
- Die meisten Generatoren für statische Seiten und Vorschauen: gesetzt, aber deaktiviert — ein Bild von einem Kästchen.
- Notiz- und Editor-Apps: meist anklickbar, und die Datei ändert sich mit.
Reagiert ein Kästchen nicht, hat der Renderer es deaktiviert. Das ist eine bewusste Entscheidung, kein Fehler in deiner Syntax.
Verschachteln
Checklisten verschachteln sich genau wie gewöhnliche Listen: zwei Leerzeichen pro Ebene.
- [ ] Release ausliefern
- [x] Changelog schreiben
- [ ] Screenshots machen
- [ ] Zur Prüfung einreichen- [ ] Release ausliefern
- [x] Changelog schreiben
- [ ] Screenshots machen
- [ ] Zur Prüfung einreichen
Übergeordnete Kästchen haken sich nicht selbst ab, wenn ihre Kinder fertig sind. Nichts in Markdown rechnet Fortschritt aus — es ist ein Textformat, kein Projektmanager.
Mit anderer Formatierung mischen
Alles, was in einen Listenpunkt darf, funktioniert auch in einer Aufgabe:
- [x] Die [Anleitung zu Listen](/de/markdown-listen) lesen
- [ ] `npm run build` ausführen
- [ ] Den **kritischen** Fehler beheben
- [ ] Jemanden zu ~~dem alten Ansatz~~ dem neuen befragen- [x] Die Anleitung zu Listen lesen
- [ ]
npm run buildausführen - [ ] Den kritischen Fehler beheben
- [ ] Jemanden zu
dem alten Ansatzdem neuen befragen
Die Liste eng halten
Eine Leerzeile zwischen den Punkten macht aus einer engen Liste eine lockere, und jede Aufgabe bekommt den Abstand eines eigenen Absatzes. Bei zwanzig Punkten sieht das kaputt aus. Halt die Zeilen beieinander — siehe enge und lockere Listen.
Häufige Fehler
Das Leerzeichen in den Klammern fehlt. - [] erscheint als wörtliche Klammern. Es muss - [ ] heißen.
Das Listenzeichen vergessen. [ ] Aufgabe ist keine Checkliste, sondern ein Absatz, der mit eckigen Klammern beginnt.
Keine Leerzeile vor der Liste. Eine Checkliste, die direkt unter einem Absatz beginnt, wird in ihn hineingezogen, genau wie jede andere Liste.
Sie überall erwarten. Checklisten sind eine Erweiterung aus GitHub Flavored Markdown. In modernen Werkzeugen sind sie beinahe universell, aber das Markdown von 2004 kennt sie nicht.
Eine Fortschrittsanzeige erwarten. 3/8 erledigt rechnet das Werkzeug um die Datei herum aus, nicht das Markdown.
Häufige Fragen
Wie mache ich in Markdown ein Kästchen?
Beginn einen Listenpunkt mit einem Klammerpaar: - [ ] für leer, - [x] für angekreuzt. Das Leerzeichen in den leeren Klammern ist Pflicht.
Warum lässt sich mein Kästchen nicht anklicken?
Weil der Renderer es deaktiviert hat. GitHub, GitLab und die meisten Editor-Apps lassen dich klicken und schreiben die Änderung in die Datei zurück; Generatoren für statische Seiten und schreibgeschützte Vorschauen setzen das Kästchen meist als deaktiviertes Element, es ist also nur ein Bild davon.
Kann ich Checklisten verschachteln?
Ja. Rück pro Ebene um zwei Leerzeichen ein, genau wie bei einer normalen Liste. Alle Kinder abzuhaken hakt den Elternpunkt nicht automatisch ab — nichts in Markdown verfolgt das.
Funktionieren Checklisten überall?
Fast. Sie kommen aus GitHub Flavored Markdown und nicht aus der ursprünglichen Spezifikation, ein sehr alter oder bewusst minimaler Parser setzt sie also als wörtliche Klammern. Jeder verbreitete Editor und jede verbreitete Plattform beherrscht sie.
Was ist der Unterschied zwischen - [x] und - [X]?
In der Praxis keiner — beide erscheinen in praktisch jedem Parser als angekreuztes Kästchen. Kleinschreibung ist die Konvention.