Fügen Sie einer Markdown-README-Datei ein Inhaltsverzeichnis hinzu
Fügen Sie die README-Datei ein, fügen Sie die Überschriftenebenen 2 bis 4 hinzu und laden Sie das generierte Dokument herunter. Das Tool platziert die Tabelle nach einem Eröffnungstitel der ersten Ebene, fügt vor jeder enthaltenen Überschrift einen expliziten Anker ein und umschließt seinen eigenen Block mit Markierungen, sodass das Dokument beim erneuten Durchlaufen des Tools ersetzt und nicht dupliziert wird.
Markdown mit Inhaltsverzeichnis
Das Originaldokument mit einem ersetzbaren generierten Block und expliziten HTML-Ankern vor eingefügten Überschriften.
Jede verlinkte Überschrift
| 5 | 2 | Install | install |
| 7 | 3 | Requirements | requirements |
| 9 | 2 | Usage | usage |
| 11 | 3 | Command line | command-line |
Ab Level 2 bleibt der README-Titel über der generierten Navigation, anstatt den Titel mit sich selbst zu verknüpfen.
Abgeschirmte Codebeispiele, die Zeilen enthalten, die mit # beginnen, werden nicht zu versehentlichen Einträgen.
Der heruntergeladene Markdown enthält sowohl die Links als auch deren Anker, sodass er nicht von den privaten Slug-Regeln einer Hosting-Plattform abhängt.
So funktioniert es
So wird es gemacht
- Normalisieren Sie die Zeilenenden und entfernen Sie nur einen vollständigen Inhaltsverzeichnisblock und Ankerzeilen, die zuvor von diesem Tool generiert wurden.
- Scannen Sie Zeilen der Reihe nach, verfolgen Sie Backtick- und Tilde-Zäune und ignorieren Sie Code mit vier Leerzeichen oder Tabulatoreinzügen, bevor Sie ATX- und Setext-Überschriften erkennen.
- Vereinfachen Sie jede enthaltene Überschrift in einen kleingeschriebenen Unicode-Slug und hängen Sie dann die Suffixe -2, -3 und höher an, wenn normalisierte Namen kollidieren.
- Fügen Sie den genauen HTML-Anker vor jeder enthaltenen Überschrift ein und platzieren Sie eine markierte, verschachtelte Liste nach einem öffnenden Titel der ersten Ebene oder am Dokumentanfang.
Wovon es ausgeht
- Der ausgewählte niedrigste Pegel ist nicht tiefer als der ausgewählte maximale Pegel.
- Der Scanner zielt auf gewöhnliche CommonMark ATX-Überschriften und einzeilige Setext-Überschriften ab; Es handelt sich nicht um einen vollständig erweiterungsspezifischen Markdown-Renderer.
- Rohe HTML-Anker werden vom Zielrenderer zugelassen. Eine Plattform, die verfasstes HTML entfernt, entfernt auch diese expliziten Ziele.
- Vorhandene nicht markierte HTML-IDs und ein unvollständig generierter Markierungsblock werden als verfasster Inhalt behandelt und niemals gelöscht.
Fragen
Wo wird die generierte README-Tabelle eingefügt?
Wenn die erste nicht leere Zeile eine ATX-Überschrift der Ebene eins ist, folgt der generierte Block diesem Titel. Andernfalls wird es am Anfang des Dokuments platziert.
Kann ich die Tabelle neu erstellen, nachdem sich die Überschriften geändert haben?
Ja. Die generierten Start- und Endkommentare identifizieren den alten Block, der vor dem Scannen der Überschriften entfernt und durch eine aktuelle Tabelle ersetzt wird.
Quellen
Die vollständige Methode, das Rechenbeispiel und alle Annahmen hinter diesem Ergebnis stehen auf Markdown-Inhaltsverzeichnis-Ersteller.