Slug je čitljivi rep web-adrese — my-first-post u example.com/blog/my-first-post. To je onaj dio koji osoba može pročitati prije nego što odluči hoće li kliknuti, i dio koji tražilica čita kao kratak opis onoga što stranica sadrži, zbog čega zaslužuje više pažnje od ID-a iz baze podataka ili datuma. Ovaj besplatni generator pretvara bilo koji tekst u slug: zalijepite naslov u polje "Tekst za pretvorbu", pritisnite "Generiraj" i rezultat se pojavljuje uz gumb za kopiranje pored njega. Zadane postavke su one koje većina web-mjesta želi — mala slova, crtice između riječi, uobičajene riječi za popunjavanje uklonjene, nelatinična slova transliterirana — tako da je iskoristiv slug udaljen samo jedan klik, a svaka od tih odluka je prekidač koji možete promijeniti.
Sve se događa na vašem uređaju. Stranica učitava mali JavaScript program i pokreće ga lokalno: vaši naslovi se nikada ne prenose niti bilježe, a alat nastavlja raditi i s isključenom internetskom vezom. To je ujedno i razlog zašto se rezultat ažurira onog trenutka kada promijenite neku postavku. Redoslijed rada vrijedi navesti, jer je to ono što rezultat čini predvidljivim: zalijepljena poveznica prvo se svodi na svoj zadnji segment putanje, zatim se tekst pretvara u mala slova, pa se zaustavne riječi odbacuju, nelatinični znakovi se transliteriraju, nakon toga se brojevi i posebni znakovi uklanjaju ako ste to zatražili, onda se ono što je preostalo spaja s vašim separatorom, rezultat se reže na maksimalnu duljinu i na kraju ponovljeni unosi dobivaju brojčani sufiks. "Tekst za pretvorbu" prihvaća do 500.000 znakova odjednom, što iznosi nekoliko tisuća naslova članaka.
Jedan redak ulaza, jedan slug izlaza. Zalijepite cijeli popis naslova i svaki redak postaje vlastiti numerirani slug, s izvornim naslovom prikazanim iznad njega u sivoj boji, tako da u seriji od pedeset još uvijek možete reći koji slug pripada kojem naslovu. Popis koji se već nalazi u datoteci ne mora putovati kroz međuspremnik: "Učitaj iz datoteke", gumb pored polja za unos, otvara običnu tekstualnu datoteku — .txt, .csv, .md, .json i slično — te ispušta njezin sadržaj u polje. Vaš preglednik čita tu datoteku točno onako kako čita ono što upišete, i ona se nigdje ne šalje. "Podijeli unos po" odlučuje kako će se popis izrezati. "Automatski" je zadano ponašanje: prijelom retka uvijek razdvaja stavke, dok ih zarez odvaja samo kada je unos u jednom retku i čiji dijelovi izgledaju kao samostalne vrijednosti — tako da "cijena 3,5 EUR" i "Poglavlje 5: rezultati, zaključci" ostaju cjeloviti umjesto da se raspadnu u fragmente. "Novi red", "Zarez" i "Razmak" forsiraju odabir kada već poznajete oblik svojih podataka. "Format rezultata" odlučuje u kojem obliku preuzimate grupu slugova — jedan po retku, "Odvojeno razmacima" ili "Odvojeno zarezima" — i "Kopiraj sve" te "Spremi u datoteku" to poštuju. "Povijest" zadržava vaših zadnjih 10 serija u vašem pregledniku, tako da je popis koji ste pretvorili prije sat vremena još uvijek tamo.
Nelatinični tekst dio je koji većina generatora slugova odrađuje otprilike, a malo njih savršeno točno. URL je najsigurniji u običnom ASCII formatu, pa se ćirilica, grčka, arapska, kineska i europska slova s naglascima moraju pretvoriti, a jedino je pravo pitanje prema čijem pravilu. Ova stranica na to odgovara u dva sloja. Opći sloj pokriva svako pismo: knjižnica za transliteraciju s razumnim ASCII odgovorom za gotovo svaki znak koji možete upisati, a to je ono što "Transliteriraj iz" znači kada kaže "Automatski (bilo koji jezik)". Specifični sloj je skup ručno izrađenih tablica za jezike gdje generički odgovor nije onaj koji se u toj zemlji zapravo koristi; izbornik "Transliteriraj iz" navodi one koji danas imaju tablicu, a skup raste kako alat dolazi do više jezika kojima je to potrebno. Odabirom jedne tablice ona se učitava u uredivu mrežu pod "Pravila transliteracije", gdje je svako slovo tekstualno polje koje možete promijeniti, a "Vrati pravila na zadano" vraća ju na početno stanje. Ukrajinska tablica slijedi Rezoluciju Kabineta ministara br. 55 iz 2010. godine, standard ispisan u ukrajinskim putovnicama, uključujući detalje koje je lako promašiti: зг postaje zgh umjesto zh kako bi ostao različit od ж; є, ї, й, ю i я poprimaju jedan oblik na početku riječi, a drugi unutar nje; apostrof i meki znak izbacuju se bez započinjanja nove riječi, pa Знам'янка izlazi kao znamianka, a ne znamyanka. Njemački standardno koristi proširenu varijantu ä → ae, ö → oe, ü → ue koju njemačke adrese zapravo koriste, s jednostavnom ä → a varijantom ako je preferirate.
Opcija "Ukloni zaustavne riječi" je prema zadanim postavkama uključena. Odbacuje male vezne riječi — i, pa, te, za, do — koje produljuju slug bez dodavanja značenja. Popis pod "Zaustavne riječi" u potpunosti je urediv i dolazi već popunjen: engleski popis plus popis za jezik stranice na kojoj se nalazite, pa hrvatska stranica prepoznaje i, u, na, te, da. Dodajte vlastite riječi, izbrišite one koje želite zadržati, ili potpuno isključite ovu značajku, pri čemu će polje postati sivo umjesto da se pretvara kako je i dalje bitno. Dvije iskrene napomene o ovome. Uklanjanje zaustavnih riječi mali je dobitak u urednosti, a ne poluga za rangiranje — dobivate kraću, čišću adresu, a ne bolju poziciju. A ako je svaka riječ u naslovu slučajno na tom popisu, iskren rezultat nije apsolutno ništa, pa vam alat to i kaže umjesto da vam preda prazan okvir.
Ostatak prekidača odlučuje o obliku. "Separator u slugu" bira ono što stoji između riječi, a crtica kao zadana opcija nije stvar ukusa: Google čita crticu kao separator riječi, a donju crtu kao spajalicu, pa my_first_post dolazi do pretraživača kao jedna dugačka riječ, dok my-first-post dolazi kao tri riječi. "Donja crta (_)" postoji za sustave koji na njoj inzistiraju. "Mala slova" su uključena jer većina poslužitelja tretira adrese pazeći na velika i mala slova, a pomiješana slova jednostavan su način da završite s dva URL-a za istu stranicu. "Ukloni posebne znakove" skida sve što nije slovo, znamenka, razmak, crtica ili donja crta, a to drži interpunkciju, navodnike i emotikone podalje od adrese — emotikoni se uklanjaju prije transliteracije točno tako da raketa ne postane riječ rocket. "Ukloni brojeve" je isključeno, jer je broj u naslovu obično dio naslova. "Maksimalna duljina" kreće se od 10 do 200 sa zadanom vrijednošću od 80; kada je slug duži od toga, mehanizam ga reže na posljednjoj cijeloj riječi koja stane, umjesto na sredini neke riječi. Broj pored svakog rezultata njegova je duljina u znakovima, a pocrveni kada prijeđe 60 — nije čvrsto ograničenje, već točka gdje se slug počinje odsijecati u rezultatima pretraživanja i postaje nezgrapan za kopiranje u poruku.
Postoje još dva prekidača jer vraćaju masovnu pretvorbu nazad u zadatak od jednog klika. "Učini slugove jedinstvenima" hvata slučaj kada se dva različita naslova svedu na isti slug — "Top 10 savjeta" i "Top-10 savjeta" oba postaju top-10-savjeta — te drugome daje nastavak -2, a trećemu -3, prvo skraćujući bazu ako bi sufiks gurnuo rezultat preko vaše maksimalne duljine. Dvije stranice na istoj adresi problem je koji je znatno jeftinije uhvatiti na ovom popisu nego u vašem CMS-u. "Preuzmi slug iz zalijepljenog URL-a" radi u suprotnom smjeru: zalijepite cijelu poveznicu i alat uzima zadnji dio putanje, odbacuje query string i svaki završetak poput .html ili .php, te dekodira percent-encoding, tako da se Wikipedijina poveznica koja završava na %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 vraća kao lviv umjesto niza heksadecimalnih znamenki. Aktivira se samo kada je cijela linija poveznica, tako da adresa citirana unutar rečenice ostaje tamo gdje jest.
Zašto odabrati ovaj generator slugova?
- Radi isključivo u pregledniku: vaši naslovi se nikada ne šalju na server i stranica radi offline
- Masovna pretvorba lijepljenjem ili iz tekstualne datoteke, uz izvorni naslov iznad svakog sluga
- Pravi standardi transliteracije za svaki jezik, a ne jedna opća tablica za sve njih
- Ukrajinski prema Rezoluciji br. 55 iz 2010. — pravopis korišten u putovnicama
- Svako pravilo može se uređivati slovo po slovo, s resetiranjem jednim klikom
- Automatski sufiksi -2 i -3 kako se nijedna dva sluga u seriji ne bi sudarila
- Zalijepite poveznicu i iz nje izvucite slug, uz dekodiranje percent-encodinga
- Urediv popis zaustavnih riječi koji dolazi unaprijed popunjen za vaš jezik
- Sigurno odsijecanje na cijeloj riječi, s brojačem znakova pored svakog rezultata
- Besplatno i neograničeno: nema prijave, kvota i ništa se ne čuva na našim poslužiteljima
Slugovi su potrebni svugdje gdje stranica mora nositi čitljivu adresu. Blog ili portal s vijestima svaki naslov pretvara u slug, što je i slučaj zbog kojeg je ovaj alat osmišljen: zalijepite naslove tjedna, dobijte URL-ove tjedna. Online trgovina radi istu stvar za imena proizvoda i kategorija, obično masovno nakon uvoza podataka, a često i na jeziku čiju abecedu adresa ne podržava. Dokumentacija i baze znanja na isti način grade sidra i imena datoteka. Izvan domene web-adresa, isti takav čist niz znakova je ono što želite za ime datoteke koje se neće pokvariti na drugom operativnom sustavu, ključ u bazi podataka koji čovjek može pročitati u zapisu, ime grane, ime slike u repozitoriju medija, ili identifikator odjeljka u generatoru statičnih stranica. Svako mjesto gdje ime čitljivo ljudima mora preživjeti unos u polje čitljivo strojevima mjesto je kojemu pripada slug.
Vrijedi znati za nekoliko ograničenja prije nego se oslonite na njega. Ovo je generator, a ne validator: neće provjeravati je li slug već zauzet na vašoj stranici, jer nema pojma što vaša stranica sadrži — jedinstvenost koju garantira vrijedi samo unutar serije pred vama. Preusmjeravanja su također vaš posao; promjena sluga na objavljenoj stranici lomi njenu staru adresu, a to je odluka za vaš CMS prije nego za ovaj alat. "Spremi u datoteku" zapisuje običan tekst, a ne CSV ili JSON. Automatsko dijeljenje donosi prosudbu o zarezima koja je točna u gotovo svakom slučaju, ali ne baš u svima, što je upravo razlog zašto vam "Podijeli unos po" dopušta da ju nadjačate. Osim toga, transliteracija je više konvencija nego prijevod — München postaje muenchen, a ne Munich — pa kada stranica ima uvriježeno ime na ciljnom jeziku, to je ime bolji slug od bilo kakve automatske pretvorbe originala.