Generátor obsahu
Prilepte Markdown alebo HTML a získajte vnorený obsah, na ktorý sa dá kliknúť, so skutočnými kotviacimi prvkami bezpečnými proti kolíziám v štýle GitHub a navyše s pôvodným obsahom s vloženými ID nadpisov.
Výsledok
Obsah je len taký užitočný ako kotviace odkazy pod ním a ukotvovacie odkazy sú spoľahlivé len vtedy, ak každý nadpis dostane jedinečný, predvídateľný slimák. Tento generátor analyzuje nadpisy z čohokoľvek, čo vložíte – Markdown alebo HTML – a každému z nich priradí skutočnú kotvu v štýle GitHub: nahradený alebo odstránený text s malými písmenami, medzery a interpunkcia, a čo je najdôležitejšie, skutočná prípona bezpečná proti kolíziám vždy, keď by dva nadpisy inak vytvorili rovnaký slimák. Druhý „Úvod“ v dokumente sa stáva úvodom-1, tretí úvod-2, sledovaný pomocou spustenej mapy výskytu presne tak, ako funguje vlastný slugger GitHub – nie je to skratka, ktorá ticho prepíše predchádzajúce odkazy, keď sa nadpisy opakujú, čo je jediný najbežnejší spôsob, ako sa ručne rolované skripty s obsahom zlomia.
Analýza Markdown je účelovo založená na riadkoch, pretože klasický režim zlyhania pre naivnú implementáciu považuje znak „#“ napísaný vo vnútri ohradeného bloku kódu za nadpis. Tento nástroj sleduje, či je plot ``` alebo ~~~ momentálne otvorený, keď prechádza dokumentom riadok po riadku, a mimo otvorených plotov rozpoznáva iba nadpisy ATX (# až ######) – takže ukážka kódu zobrazujúca komentáre shellu alebo „# komentár“ Pythonu nikdy neznečistí váš obsah. Vstup HTML má inú, rovnako reálnu cestu: je analyzovaný vlastným DOMParserom prehliadača, nadpisy sú vybrané podľa názvu značky a atribút id každého z nich je nastavený priamo na skutočný prvok predtým, ako je dokument serializovaný späť do reťazca.
Na druhom konci vychádzajú dve veci. Po prvé, samotný obsah, exportovaný ako vnorený zoznam Markdown (- [Title](#slug), odsadený podľa úrovne nadpisu) a ako vnorený zoznam HTML (<ul><li><a href="#slug">), každý s vlastným tlačidlom kopírovania. Po druhé, váš pôvodný obsah so skutočne zapojenými kotvami: pre vstup Markdown si môžete vybrať široko podporovanú syntax atribútu nadpisu {#slug}, ktorú používajú Jekyll kramdown, Pandoc, MkDocs a GitHub Pages, alebo sa vrátiť k jednoduchým značkám nadpisov HTML s už nastaveným id="slug", ak váš cieľový vykresľovací modul nerozumie syntaxi atribútu. Pre vstup HTML sa id vloží priamo do analyzovaného prvku nadpisu – nie je možné vybrať žiadny samostatný „režim“, pretože značky už existujú.
Všetko beží lokálne vo vašom prehliadači: analýza, výpočet slimákov a opätovné zostavenie dokumentu – to všetko prebieha v JavaScripte na stránke, ktorú si práve prezeráte, pričom sa nikde nič neodovzdáva. To je dôležité pre koncept dokumentácie, interné wiki alebo nepublikované blogové príspevky, ktoré nie ste pripravení vložiť do služby tretej strany, len aby ste získali pracovný obsah.