0

Generator for indholdsfortegnelse

Indsæt Markdown eller HTML og få en indlejret, klikbar indholdsfortegnelse med ægte GitHub-lignende kollisionssikre ankersnegle plus det originale indhold med injiceret overskrifts-id'er.

Auto-detekter søger efter rigtige

-

tags først, derefter Markdown # overskrifter.

Tilføjer en {#slug}-attribut efter hver overskrift - understøttet af kramdown, Pandoc, MkDocs og GitHub Pages (Jekyll).

Buy Me a Coffee at ko-fi.com
Behandler... 0%
Registrering af indholdsformat
Parsing af overskrifter
Tildeling af kollisionssikre snegle
Opbygning af indholdsfortegnelse

Resultat

En indholdsfortegnelse er kun så nyttig som ankerlinkene under den, og ankerlinks er kun pålidelige, hvis hver overskrift får en unik, forudsigelig slug. Denne generator analyserer overskrifterne ud af, hvad end du indsætter - Markdown eller HTML - og tildeler hver enkelt et rigtigt GitHub-anker: tekst med små bogstaver, mellemrum og tegnsætning erstattet eller fjernet, og kritisk, et ægte kollisionssikkert suffiks, når to overskrifter ellers ville producere den samme slug. Den anden "Introduktion" i et dokument bliver til introduktion-1, den tredje bliver til introduktion-2, sporet med et kørende forekomstkort nøjagtigt som GitHubs egen slugger fungerer - ikke en genvej, der lydløst overskriver tidligere links, når overskrifter gentages, hvilket er den mest almindelige måde, håndrullede indholdsfortegnelsesscripts går i stykker.

Markdown-parsing er linjebaseret med vilje, fordi den klassiske fejltilstand for en naiv implementering behandler et "#" skrevet inde i en indhegnet kodeblok som en overskrift. Dette værktøj sporer, om et ``` eller ~~~ hegn i øjeblikket er åbent, mens det går gennem dokumentet linje for linje, og genkender kun ATX-overskrifter (# til ######) uden for åbne hegn - så en kodeeksempel, der viser shell-kommentarer eller en Python "#-kommentar" forurener aldrig din indholdsfortegnelse. HTML-input tager en anden, lige så reel sti: det parses med browserens egen DOMParser, overskrifter vælges efter tagnavn, og hver enkelts id-attribut indstilles direkte på det faktiske element, før dokumentet serialiseres tilbage til en streng.

To ting kommer ud i den anden ende. Først selve indholdsfortegnelsen, eksporteret som både en indlejret Markdown-liste (- [Titel](#slug), indrykket efter overskriftsniveau) og en indlejret HTML-liste (<ul><li><a href="#slug">), hver med sin egen kopiknap. For det andet, dit originale indhold med ankrene faktisk tilsluttet: Til Markdown-input kan du vælge den bredt understøttede {#slug} overskriftsattributsyntaks, der bruges af kramdown, Pandoc, MkDocs og GitHub Pages' Jekyll, eller falde tilbage til almindelige HTML-overskriftstags med id="slug" allerede indstillet, hvis din målgengiver ikke forstår syntax. Til HTML-input injiceres id'et direkte i det parsede overskriftselement - der er ingen separat "tilstand" at vælge, fordi taggene allerede eksisterer.

Alt kører lokalt i din browser: Parsing, slug-matematikken og dokumentgenopbygningen foregår alle i JavaScript på den side, du kigger på lige nu, uden at der er uploadet noget nogen steder. Det har betydning for udkast til dokumentation, interne wikier eller et upubliceret blogindlæg, som du ikke er klar til at indsætte i en tredjepartstjeneste bare for at få en fungerende indholdsfortegnelse.