Slug je čitelná koncová část webové adresy — my-first-post v example.com/blog/my-first-post. Je to ta část, kterou si člověk může přečíst, než se rozhodne kliknout, a kterou vyhledávač čte jako stručný popis obsahu stránky. Proto si zaslouží více pozornosti než id z databáze nebo datum. Tento bezplatný generátor převede jakýkoli text na slug: vložte nadpis do pole Text k převodu, stiskněte Generovat a výsledek se objeví s tlačítkem pro kopírování. Výchozí nastavení představuje to, co většina webů potřebuje — malá písmena, spojovníky mezi slovy, vynechaná výplňová slova a transliterovaná nelatinská písmena. Použitelný slug je tak vzdálen jedno kliknutí a každé z těchto rozhodnutí je přepínač, který můžete změnit.
Vše probíhá přímo na vašem zařízení. Stránka načte malý javascriptový engine a spustí jej lokálně: vaše nadpisy se nikam neodesílají, nikam neukládají a nástroj funguje dál i po odpojení od internetu. To je také důvod, proč se výsledek aktualizuje ve chvíli, kdy změníte nastavení. Pořadí práce stojí za zmínku, protože právě to činí výstup předvídatelným: vložený odkaz je nejprve zkrácen na svou poslední část, poté je text převeden na Malá písmena, následně jsou odstraněna Stop slova, nelatinské znaky jsou transliterovány (což řídí volba Transliterovat), odstraní se čísla a speciální znaky (pokud jste o to požádali), to, co zbyde, se spojí znakem, který jste zvolili v poli Oddělovač, výsledek se zkrátí na hodnotu Max. délka a nakonec opakující se položky dostanou číselnou příponu. Pole Text k převodu pojme najednou až 500 000 znaků, což odpovídá několika tisícům názvů článků.
Jeden řádek na vstupu, jeden slug na výstupu. Vložte celý seznam nadpisů a z každého řádku se stane samostatný očíslovaný slug. Původní nadpis, ze kterého vznikl, se nad ním zobrazí šedě, takže i v dávce padesáti položek poznáte, který slug patří ke kterému nadpisu. Seznam, který již máte v souboru, nemusíte kopírovat: tlačítko Načíst ze souboru vedle vstupního pole otevře obyčejný textový soubor — .txt, .csv, .md, .json a podobné — a vloží jeho obsah do pole. Váš prohlížeč čte tento soubor úplně stejně, jako čte to, co píšete, a nikam jej neodesílá. Volba Rozdělit vstup podle určuje, jak se seznam rozkouskuje. Automaticky je výchozí: zalomení řádku vždy odděluje položky, zatímco čárka je odděluje jen tehdy, když je vstupem jeden řádek, jehož všechny části vypadají jako samostatné hodnoty — takže "cena 3,5 EUR" a "Kapitola 5: výsledky, závěry" zůstanou vcelku a nerozpadnou se na fragmenty. Možnosti Nový řádek, Čárka a Mezera vynutí volbu, pokud formát svých dat už znáte. Volba Formát výstupu určuje, jak se dávka vrátí, když si ji vyzvednete — po jednom na řádek, Odděleno mezerami nebo Odděleno čárkami. Tlačítka Kopírovat vše a Uložit do souboru to budou respektovat. Funkce Historie uchovává vašich posledních 10 dávek ve vašem prohlížeči, takže seznam, který jste převedli před hodinou, tam stále je.
Nelatinský text je ta část, kterou většina generátorů slugů zvládne zhruba dobře a málokterý přesně. URL je nejbezpečnější v čistém ASCII, takže cyrilici, řečtinu, arabštinu, čínštinu a evropská písmena s diakritikou je třeba převést a jedinou skutečnou otázkou je, podle jakého pravidla. Tato stránka na to odpovídá ve dvou vrstvách. Obecná vrstva pokrývá všechna písma: je to transliterační knihovna s rozumným ASCII ekvivalentem pro téměř jakýkoli znak, který dokážete napsat. To je to, co znamená volba Automaticky (libovolný jazyk) v nabídce Transliterovat z. Specifickou vrstvou je sada ručně sestavených tabulek pro jazyky, kde se obecná odpověď neshoduje s tím, co se v dané zemi reálně používá. Které jazyky tabulku mají, uvádí sama nabídka Transliterovat z, a seznam roste, jak nástroj naráží na další jazyky, které je potřebují. (Čeština zatím používá obecnou vrstvu). Výběrem jedné z těchto tabulek se tato načte do upravitelné mřížky v části Pravidla transliterace, kde je každé písmeno textovým polem, které můžete změnit, a tlačítkem Obnovit výchozí pravidla je vrátíte zpět. Ukrajinská tabulka se řídí nařízením kabinetu ministrů č. 55 z roku 2010, což je standard používaný v ukrajinských pasech, a zahrnuje i detaily, na které se snadno zapomíná: зг se mění na zgh místo zh, aby se lišilo od ж; є, ї, й, ю a я mají jednu formu na začátku slova a jinou uvnitř něj; apostrof a měkký znak se vypouštějí bez zahájení nového slova, takže Знам'янка vyjde jako znamianka a ne znamyanka. Němčina ve výchozím nastavení používá rozšířené ä → ae, ö → oe, ü → ue, které se ve skutečnosti používají v německých adresách, s variantou obyčejného ä → a, pokud dáváte přednost té.
Volba Odstranit stop slova je ve výchozím nastavení zapnutá. Vynechává drobná spojovací slova — a, the, and, of, for —, která prodlužují slug, aniž by mu přidala na významu. Seznam pod položkou Stop slova je plně upravitelný a je dodáván již vyplněný: anglický seznam plus seznam pro jazyk stránky, na které se nacházíte, takže přidávejte svá vlastní slova, mažte ta, která chcete zachovat, nebo funkci úplně vypněte (pole poté zešedne, místo aby předstíralo, že je stále funkční). Dvě upřímné poznámky k této funkci. Odstranění stop slov je spíše drobným vylepšením přehlednosti než faktorem pro hodnocení ve vyhledávačích — získáte kratší, čistší adresu, nikoli lepší pozici. A pokud se každé slovo v nadpisu náhodou nachází v tomto seznamu, poctivým výsledkem je prázdnota. Nástroj vám to tedy sdělí, místo aby vám vrátil prázdné pole.
Zbývající přepínače určují tvar. Možnost Oddělovač vybírá to, co sedí mezi slovy. Výchozí Spojovník (-) není otázkou vkusu: Google chápe spojovník jako oddělovač slov a podtržítko jako spojovací znak, takže my_first_post dorazí k prohledávači jako jedno dlouhé slovo, zatímco my-first-post jako tři. Podtržítko (_) je zde k dispozici pro systémy, které na něm trvají. Volba Malá písmena je zapnutá, protože většina serverů rozlišuje v adresách velká a malá písmena, a smíšená velikost je snadný způsob, jak skončit se dvěma URL pro jednu stránku. Přepínač Odstranit speciální znaky odstraní vše, co není písmeno, číslice, mezera, spojovník nebo podtržítko. Tím se do adresy nedostane interpunkce, uvozovky a emoji — emoji jsou navíc odstraňována před transliterací specificky proto, aby se z obrázku rakety nestalo slovo rocket. Odstranit čísla je vypnuto, protože číslo v nadpisu je obvykle jeho součástí. Max. délka funguje od 10 do 200 s výchozí hodnotou 80; když je slug delší, engine ho uřízne na konci posledního celého slova, které se vejde, a ne v polovině slova. Číslo vedle každého výsledku ukazuje jeho délku ve znacích a po překročení 60 znaků zčervená. Nejedná se o tvrdý limit, ale o bod, kde se slug začíná osekávat ve výsledcích vyhledávání a stává se nepohodlným pro vkládání do zpráv.
Další dva přepínače existují proto, aby udělaly z hromadného převodu opět úlohu na jedno kliknutí. Volba Unikátní slugy řeší případ, kdy se dva různé nadpisy zkrátí na stejný slug — "Top 10 tipů" a "Top-10 tipů" se obojí stane top-10-tipu — a přidá druhému slugu příponu -2 a třetímu -3. Pokud by přípona posunula slug za vaši maximální délku, základní část se předem zkrátí. Dvě stránky na jedné adrese představují problém, který je mnohem levnější podchytit v tomto seznamu, než ve vašem redakčním systému. Volba Převzít slug z vložené URL funguje v opačném směru: vložte celý odkaz a nástroj vezme poslední část cesty, zahodí řetězec dotazu i případnou koncovku .html nebo .php a dekóduje percent-encoding (procentní kódování). Adresa z Wikipedie končící na %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 se tedy vrátí jako lviv, nikoli jako změť hexadecimálních číslic. Aktivuje se pouze tehdy, když je odkazem celý řádek, takže adresa citovaná uprostřed věty zůstane tam, kde je.
Proč si vybrat tento generátor slugů?
- Pouze v prohlížeči: vaše nadpisy se nikam neodesílají a stránka funguje i offline
- Hromadný převod ze schránky nebo textového souboru, se zdrojovým nadpisem nad každým slugem
- Skutečné standardy transliterace pro jazyky, nikoli jen jedna obecná tabulka pro všechny
- Ukrajinština podle usnesení č. 55 z roku 2010 — pravopis používaný v pasech
- Každé pravidlo lze upravovat písmeno po písmenu s možností obnovení jedním kliknutím
- Automatické přípony -2 a -3, takže žádné dva slugy v dávce nebudou kolidovat
- Vložte odkaz a vytáhněte z něj slug s dekódovaným percent-encoding
- Upravitelný seznam stop slov, který je dodáván vyplněný pro váš jazyk
- Bezpečné oříznutí po celém slově s počítadlem znaků vedle každého výsledku
- Zdarma a bez omezení: žádná registrace, žádné limity, nic se neuchovává na našich serverech
Slugy jsou potřeba všude tam, kde musí mít stránka čitelnou adresu. Blog nebo zpravodajský web přemění každý titulek na slug, což je přesně ten případ, pro který byl tento nástroj navržen: vložte titulky za celý týden a získejte URL za celý týden. Internetový obchod dělá totéž u názvů produktů a kategorií, obvykle hromadně po importu dat a zpravidla v jazyce, jehož abecedu adresa nezvládne. Dokumentace a znalostní báze sestavují stejným způsobem kotvy a názvy souborů. Kromě webových adres potřebujete stejný čistý řetězec i pro název souboru, který se na jiném operačním systému nerozbije, pro databázový klíč, který si člověk přečte v logu, pro název větve v gitu, pro název obrázku v knihovně médií nebo pro identifikátor sekce v generátoru statických webů. Každé místo, kde musí člověkem čitelný název přežít vložení do strojově čitelného pole, je místem, kam slug patří.
Než se na něj spolehnete, stojí za to znát několik omezení. Toto je generátor, nikoli validátor: nekontroluje, zda je slug na vašem webu již obsazen, protože nemá tušení, co váš web obsahuje. Unikátnost, kterou zaručuje, platí pouze pro dávku před vámi. Vaší prací je také řešení přesměrování (redirectů); změna slugu již publikované stránky rozbije její starou adresu a rozhodnutí o tom náleží vašemu redakčnímu systému, nikoli tomuto nástroji. Tlačítko Uložit do souboru zapisuje čistý text, nikoli CSV nebo JSON. Automatické rozdělování rozhoduje o čárkách, což je správné téměř ve všech případech, ale ne úplně ve všech, a právě proto vám Rozdělit vstup podle umožňuje ho přepsat. Navíc transliterace je konvence spíše než překlad — München se stane muenchen, nikoli Munich. Takže když má stránka v cílovém jazyce zažitý název, je tento název lepším slugem než jakýkoli automatický převod originálu.