0

Generator kazala vsebine

Prilepite Markdown ali HTML in dobite ugnezdeno kazalo vsebine, ki ga je mogoče klikniti, z resničnimi sidrnimi polži v slogu GitHub, varnimi pred trki, in izvirno vsebino z vstavljenimi ID-ji naslovov.

Samodejno zaznavanje najprej poišče prave oznake

-

, nato naslove Markdown #.

Za vsakim naslovom doda atribut {#slug} – podpirajo kramdown, Pandoc, MkDocs in GitHub Pages (Jekyll).

Buy Me a Coffee at ko-fi.com
Obdelava ... 0%
Zaznavanje formata vsebine
Razčlenjevanje naslovov
Dodeljevanje polžev, varnih pred trkom
Sestavljanje kazala vsebine

Rezultat

Kazalo vsebine je uporabno le toliko, kolikor so uporabne sidrne povezave pod njim, sidrne povezave pa so zanesljive le, če vsak naslov dobi edinstven, predvidljiv polž. Ta generator razčleni naslove iz vsega, kar prilepite - Markdown ali HTML - in vsakemu dodeli pravo sidro v slogu GitHub: besedilo z malimi črkami, presledki in ločila so zamenjani ali odstranjeni, in, kar je kritično, pristna pripona, varna pred trkom, kadar bi dva naslova sicer ustvarila isti polž. Drugi »Uvod« v dokumentu postane uvod-1, tretji postane uvod-2, ki se spremlja z tekočim zemljevidom pojavov natanko tako, kot deluje GitHubov lastni slugger – ne bližnjica, ki tiho prepiše prejšnje povezave, ko se naslovi ponavljajo, kar je edini najpogostejši način, na katerega se ročno zviti skripti kazal vsebine prekinejo.

Razčlenjevanje označevanja temelji na vrstici glede na namen, ker klasičen način napake za naivno izvedbo obravnava "#", napisano znotraj ograjenega bloka kode, kot naslov. To orodje spremlja, ali je ograja ``` ali ~~~ trenutno odprta, ko se sprehaja po dokumentu vrstico za vrstico, in prepozna samo naslove ATX (od # do ######) zunaj odprtih ograj – tako vzorec kode, ki prikazuje komentarje lupine, ali Python "# komentar" nikoli ne onesnaži vašega kazala. Vnos HTML ubere drugačno, enako resnično pot: razčlenjen je z brskalnikovim lastnim razčlenjevalnikom DOMParser, naslovi so izbrani z imenom oznake in vsak atribut id je nastavljen neposredno na dejanski element, preden se dokument serializira nazaj v niz.

Dve stvari prideta ven na drugi strani. Prvič, samo kazalo vsebine, izvoženo kot ugnezdeni seznam Markdown (- [Naslov](#slug), zamaknjen glede na raven naslova) in ugnezdeni seznam HTML (<ul><li><a href="#slug">), vsak s svojim gumbom za kopiranje. Drugič, vaša izvirna vsebina z dejansko povezanimi sidri: za vnos Markdown lahko izberete široko podprto sintakso atributa naslova {#slug}, ki jo uporabljajo kramdown, Pandoc, MkDocs in Jekyll iz GitHub Pages, ali pa se vrnete na navadne oznake naslovov HTML z že nastavljenim id="slug", če vaš ciljni upodabljalnik ne razume sintakse atributov. Pri vnosu HTML se id vstavi naravnost v razčlenjeni element naslova - ni ločenega "načina", ki bi ga lahko izbrali, ker oznake že obstajajo.

Vse se izvaja lokalno v vašem brskalniku: razčlenjevanje, matematika polžev in ponovno sestavljanje dokumenta se vse zgodi v JavaScriptu na strani, ki jo trenutno gledate, pri čemer ni nikjer ničesar naloženo. To je pomembno za osnutke dokumentacije, interne wikije ali neobjavljeno objavo v spletnem dnevniku, ki je niste pripravljeni prilepiti v storitev tretje osebe samo zato, da bi dobili delujoče kazalo.