Generator sadržaja
Zalijepite Markdown ili HTML i dobijte ugniježđenu tablicu sadržaja na koju je moguće kliknuti sa pravim sidrištima u stilu GitHub-a sigurnim od sudara, plus izvorni sadržaj s umetnutim ID-ovima naslova.
Rezultat
Sadržaj je koristan samo onoliko koliko su korisne veze sidra ispod njega, a veze sidra pouzdane su samo ako svaki naslov dobije jedinstveni, predvidljivi trag. Ovaj generator raščlanjuje naslove iz onoga što zalijepite - Markdown ili HTML - i svakom dodjeljuje pravo sidro u stilu GitHub-a: tekst malim slovima, razmaci i interpunkcija zamijenjeni su ili uklonjeni, i, kritično, pravi sufiks siguran od sudara kad god bi dva naslova inače proizvela isti trag. Drugi "Uvod" u dokumentu postaje uvod-1, treći postaje uvod-2, praćen pokrenutom kartom pojavljivanja točno na način na koji GitHubov vlastiti slugger radi - a ne prečac koji nečujno prepisuje ranije veze kada se ponavljaju naslovi, što je najčešći način na koji se ručne skripte sa sadržajem prekidaju.
Raščlanjivanje označavanja temelji se na liniji prema svrsi, jer klasični način neuspjeha za naivnu implementaciju tretira "#" napisan unutar ograđenog bloka koda kao naslov. Ovaj alat prati je li ``` ili ~~~ ograda trenutno otvorena dok hoda dokumentom redak po redak i prepoznaje samo ATX naslove (# do ######) izvan otvorenih ograda - tako da uzorak koda koji prikazuje komentare ljuske ili Python "# komentar" nikada ne zagađuju vašu tablicu sadržaja. HTML unos ide drugačijim, jednako stvarnim putem: analizira se vlastitim DOMParserom preglednika, naslovi se odabiru prema nazivu oznake, a svaki atribut id-a postavlja se izravno na stvarni element prije nego što se dokument serijalizira natrag u niz.
Dvije stvari izlaze s druge strane. Prvo, sam sadržaj, izvezen kao ugniježđeni Markdown popis (- [Naslov](#slug), uvučen prema razini naslova) i ugniježđeni HTML popis (<ul><li><a href="#slug">), svaki sa svojim gumbom za kopiranje. Drugo, vaš izvorni sadržaj sa sidrištima koja su zapravo spojena: za Markdown unos možete odabrati široko podržanu {#slug} sintaksu atributa naslova koju koriste kramdown, Pandoc, MkDocs i Jekyll GitHub Pages, ili se vratiti na obične HTML oznake naslova s već postavljenim id="slug" ako vaš ciljni renderer ne razumije sintaksu atributa. Za HTML unos, ID se ubacuje izravno u raščlanjeni element naslova - ne postoji poseban "način" za odabir jer oznake već postoje.
Sve se izvodi lokalno u vašem pregledniku: raščlanjivanje, računska obrada i ponovno sastavljanje dokumenta sve se događa u JavaScriptu na stranici koju trenutno gledate, a nigdje ništa nije učitano. To je važno za dokumentaciju nacrta, interne wikije ili neobjavljen post na blogu koji niste spremni zalijepiti u uslugu treće strane samo da biste dobili radnu tablicu sadržaja.