Slug je čitateľná koncová časť webovej adresy — ono my-first-post v example.com/blog/my-first-post. Je to časť, ktorú si človek môže prečítať predtým, než sa rozhodne kliknúť, a časť, ktorú vyhľadávač číta ako stručný popis obsahu stránky. Preto si zaslúži väčšiu pozornosť ako len id databázy alebo dátum. Tento bezplatný generátor premení akýkoľvek text na slug: vložte názov do poľa „Text na konverziu“, stlačte „Generovať“ a výsledok sa zobrazí s tlačidlom na kopírovanie vedľa neho. Predvolené nastavenia sú tie, ktoré uprednostňuje väčšina webov — malé písmená, pomlčky medzi slovami, odstránené prázdne slová, transliterované nelatinské znaky — takže použiteľný slug je vzdialený na jedno kliknutie a každé z týchto rozhodnutí môžete kedykoľvek zmeniť.
Všetko sa odohráva na vašom vlastnom zariadení. Stránka načíta malý JavaScriptový engine a spustí ho lokálne: vaše názvy sa nikdy nikam nenahrávajú, nikdy sa nezaznamenávajú a nástroj funguje aj po vypnutí pripojenia k sieti. To je tiež dôvod, prečo sa výsledok aktualizuje v okamihu, keď zmeníte nastavenie. Poradie úkonov stojí za zmienku, pretože vďaka nemu je výsledok predvídateľný: vložený odkaz sa najprv zredukuje na posledný segment cesty, potom sa text zmení na malé písmená, následne sa odstránia prázdne slová, nelatinské znaky sa transliterujú, potom sa odstránia čísla a špeciálne znaky, ak ste o to požiadali. Zvyšok sa spojí zvoleným oddeľovačom, potom sa výsledok skráti na maximálnu dĺžku a nakoniec opakovanie dostane číselnú príponu. „Text na konverziu“ prijme až 500 000 znakov naraz, čo predstavuje niekoľko tisíc názvov článkov.
Jeden riadok na vstupe, jeden slug na výstupe. Vložte celý zoznam názvov a z každého riadka sa stane vlastný očíslovaný slug, s pôvodným názvom zobrazeným sivou farbou nad ním, takže v dávke päťdesiatich stále spoznáte, ktorý slug patrí ku ktorému nadpisu. Zoznam, ktorý už existuje v súbore, nemusí prechádzať cez schránku: tlačidlo „Načítať zo súboru“ vedľa vstupného poľa otvorí obyčajný textový súbor — .txt, .csv, .md, .json a podobne — a jeho obsah vloží do poľa. Váš prehliadač načíta tento súbor rovnako, ako načíta to, čo napíšete, a nikam sa nenahráva. Nastavenie „Rozdeliť vstup podľa“ rozhoduje o tom, ako sa zoznam rozreže. „Automaticky“ je predvolená voľba: zalomenie riadka vždy oddeľuje položky, zatiaľ čo čiarka ich oddelí iba vtedy, ak je vstupom jeden riadok, ktorého časti vyzerajú ako samostatné hodnoty — takže „cena 3,5 EUR“ a „Kapitola 5: výsledky, závery“ zostanú vcelku namiesto toho, aby sa rozbili na úlomky. Možnosti „Zalomenie riadka“, „Čiarka“ a „Medzera“ vynútia voľbu, keď už poznáte tvar svojich údajov. Nastavenie „Formát výsledku“ určuje, ako sa dávka vráti pri jej prevzatí — po riadkoch, oddelené medzerami alebo oddelené čiarkami — a riadia sa ním tlačidlá „Kopírovať všetko“ aj „Uložiť do súboru“. Systém „História“ uchováva vo vašom prehliadači posledných 10 dávok, takže zoznam, ktorý ste konvertovali pred hodinou, tam stále nájdete.
Nelatinský text je tá časť, ktorú väčšina generátorov slugov urobí približne správne a len málo z nich úplne presne. URL je najbezpečnejšia v čistom ASCII, takže azbuka, grécke, arabské, čínske znaky a európske písmená s diakritikou musia byť skonvertované a jedinou skutočnou otázkou je, podľa akého pravidla. Táto stránka to rieši v dvoch vrstvách. Všeobecná vrstva pokrýva každé písmo: knižnica na transliteráciu s rozumným ASCII riešením pre takmer každý znak, ktorý dokážete napísať, čo je to, čo znamená voľba „Automaticky (ľubovoľný jazyk)“ v ponuke „Transliterovať z“. Špecifickou vrstvou je súbor ručne zostavených tabuliek pre jazyky, pri ktorých všeobecná odpoveď nie je tá, ktorú daná krajina skutočne používa. V ponuke „Transliterovať z“ sú uvedené tie jazyky, pre ktoré dnes existuje tabuľka, a ich počet sa rozširuje podľa toho, ako nástroj pridáva ďalšie jazyky. Výberom jedného z nich sa načíta jeho tabuľka do upraviteľnej mriežky v časti „Pravidlá transliterácie“, kde je každé písmeno textovým poľom, ktoré môžete zmeniť, a tlačidlo „Obnoviť predvolené pravidlá“ ju vráti späť. Ukrajinská tabuľka sa riadi uznesením kabinetu ministrov č. 55 z roku 2010, štandardom vytlačeným v ukrajinských pasoch, vrátane detailov, ktoré sa dajú ľahko prehliadnuť: зг sa mení na zgh namiesto zh, aby sa odlíšilo od ж; písmená є, ї, й, ю a я nadobúdajú jednu podobu na začiatku slova a inú v jeho vnútri; a apostrof s mäkkým znakom sú vynechané bez začatia nového slova, takže Знам'янка vyjde ako znamianka a nie znamyanka. Nemčina má v predvolenom nastavení predĺženú verziu ä → ae, ö → oe, ü → ue, ktorú nemecké adresy skutočne používajú, pričom k dispozícii je aj jednoduchšia varianta ä → a, ak ju uprednostňujete.
Možnosť „Odstrániť prázdne slová“ je predvolene zapnutá. Odstraňuje malé spojovacie slová — a, k, v, z, na — ktoré slug predlžujú bez toho, aby mu pridávali význam. Zoznam pod položkou „Prázdne slová“ je plne upraviteľný a je už vyplnený: zoznam v angličtine plus zoznam pre jazyk stránky, na ktorej sa práve nachádzate, takže slovenská stránka pozná slová a, v, na, z, do. Pridajte vlastné slová, vymažte tie, ktoré si chcete ponechať, alebo funkciu úplne vypnite, pričom v takom prípade pole zosivie, namiesto toho, aby predstieralo, že je stále dôležité. Dve úprimné poznámky k tomu. Odstránenie prázdnych slov predstavuje len drobný nárast prehľadnosti, a nie páku na vylepšenie pozície vo vyhľadávaní — získate kratšiu, čistejšiu adresu, nie lepšie umiestnenie. Ak by sa náhodou každé slovo v názve nachádzalo v tomto zozname, úprimným výsledkom by nebolo vôbec nič, takže vám to nástroj oznámi namiesto toho, aby vám odovzdal prázdne políčko.
Ostatné prepínače rozhodujú o výslednom tvare. „Oddeľovač v slugu“ vyberá to, čo stojí medzi slovami, pričom predvolená pomlčka nie je vecou vkusu: Google číta pomlčku ako oddeľovač slov a podčiarkovník ako spojovník, takže my_first_post sa k vyhľadávaciemu robotovi dostane ako jedno dlhé slovo, zatiaľ čo my-first-post ako tri. Možnosť „Podčiarkovník (_)“ je tu pre systémy, ktoré na ňom trvajú. „Malé písmená“ sú zapnuté, pretože väčšina serverov spracováva adresy s rozlišovaním malých a veľkých písmen a ich miešanie je jednoduchou cestou, ako získať dve URL pre jednu stránku. Možnosť „Odstrániť špeciálne znaky“ odstráni všetko, čo nie je písmeno, číslica, medzera, pomlčka alebo podčiarkovník, čo je to, čo udržuje interpunkciu, úvodzovky a emoji mimo adries — emoji sú odstránené pred transliteráciou zámerne, aby sa raketa nestala slovom rocket. „Odstrániť čísla“ je vypnuté, pretože číslo v názve býva zvyčajne jeho súčasťou. Hodnota „Maximálna dĺžka“ má rozsah od 10 do 200 a vopred nastavených je 80. Keď je slug dlhší, engine vykoná rez pri poslednom celom slove, ktoré sa zmestí, a nie niekde v polovici slova. Číslica vedľa každého výsledku vyjadruje jeho dĺžku v znakoch a sčervenie po prekročení 60 — čo nie je tvrdý limit, ale skôr bod, kedy sa slug začne skracovať vo výsledkoch vyhľadávania a jeho vkladanie do správ sa stáva nepraktickým.
Ďalšie dva prepínače existujú preto, lebo dokážu hromadnú konverziu premeniť späť na úlohu jedného kliknutia. Nastavenie „Vytvoriť jedinečné slugy“ zachytáva situáciu, kedy sa dva rôzne názvy zredukujú na rovnaký slug — „Top 10 tipov“ aj „Top-10 tipov“ sa stanú top-10-tipov — a priradí druhému príponu -2, tretiemu -3, pričom najprv skráti základ, ak by prípona spôsobila prekročenie maximálnej dĺžky. Dve stránky na jednej adrese sú problémom, ktorý sa dá v tomto zozname zachytiť oveľa lacnejšie než vo vašom CMS. Možnosť „Prevziať slug z vloženej URL“ funguje v opačnom smere: vložte celú adresu a nástroj vyberie poslednú časť cesty, zahodí parametre dopytu a prípadné ukončenie .html alebo .php a dekóduje kódovanie percent, takže odkaz na Wikipediu končiaci na %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 sa vráti ako lviv namiesto série hexadecimálnych znakov. Spustí sa to len vtedy, keď je celý riadok odkazom, takže adresa citovaná vnútri vety zostane tam, kde je.
Prečo si vybrať tento generátor slugov?
- Iba v prehliadači: vaše názvy sa nikdy nenahrávajú a stránka funguje offline
- Hromadná konverzia z vloženia alebo textového súboru so zdrojovým názvom nad každým slugom
- Skutočné štandardy transliterácie pre konkrétne jazyky, nie jedna všeobecná tabuľka
- Ukrajinčina podľa uznesenia č. 55 z roku 2010 — pravopis používaný v pasoch
- Každé pravidlo je upraviteľné písmeno po písmene, s obnovením jedným kliknutím
- Automatické prípony -2 a -3, takže žiadne dva slugy v dávke nebudú kolidovať
- Vložte odkaz a získajte z neho slug, aj s dekódovaním špeciálnych znakov
- Upraviteľný zoznam prázdnych slov, ktorý je už vyplnený pre váš jazyk
- Bezpečné skrátenie na celé slovo spolu s počtom znakov pri každom výsledku
- Zadarmo a neobmedzene: bez registrácie, bez limitov, nič sa neukladá na naše servery
Slugy sú potrebné všade tam, kde stránka musí mať čitateľnú adresu. Blog alebo spravodajský portál mení každý nadpis na slug, čo je scenár, pre ktorý bol tento nástroj navrhnutý: vložte všetky nadpisy týždňa, získate všetky URL adresy týždňa. Internetový obchod robí to isté s názvami produktov a kategórií, obvykle hromadne po importe, a často v jazyku, ktorého abeceda sa do webovej adresy nezmestí. Dokumentácie a znalostné databázy generujú kotvy a názvy súborov presne tým istým spôsobom. Ak odhliadneme od webových adries, ten istý čistý reťazec je presne to, čo chcete pre názov súboru, ktorý sa nepokazí v inom operačnom systéme, pre kľúč v databáze, ktorý si človek dokáže prečítať v systémovom zázname, pre názov vetvy v Gite, pre názov obrázka v knižnici médií, alebo pre identifikátor sekcie v generátore statických stránok. Akékoľvek miesto, kde ľudsky čitateľný názov musí prežiť vloženie do strojovo čitateľného poľa, je miesto, kam slug patrí.
Predtým, než sa naň začnete spoliehať, je dobré poznať zopár jeho limitov. Toto je generátor, nie validátor: nebude overovať, či je nejaký slug už na vašom webe použitý, pretože nemá tušenie o tom, čo vaša stránka obsahuje — jedinečnosť, ktorú zaručuje, platí len v rámci dávky, ktorú máte pred sebou. Presmerovania sú tiež vašou úlohou; zmena slugu publikovanej stránky naruší jej starú adresu, a to je rozhodnutie pre vaše CMS a nie pre tento nástroj. Tlačidlo „Uložiť do súboru“ zapisuje iba obyčajný text, nie CSV alebo JSON. Automatické rozdelenie vykonáva úsudok o čiarkach, ktorý je správny v takmer každom prípade, no nie absolútne vo všetkých. A práve preto vám nastavenie „Rozdeliť vstup podľa“ umožňuje toto správanie prebiť. A transliterácia je skôr konvenciou než prekladom — München sa stane muenchen, a nie Munich — takže ak už stránka má v cieľovom jazyku zaužívaný názov, potom je takýto názov lepším slugom než akákoľvek automatická konverzia originálu.