Slug yra skaitoma interneto adreso pabaiga — pavyzdžiui, my-first-post adrese example.com/blog/my-first-post. Tai dalis, kurią žmogus perskaito prieš nuspręsdamas, ar paspausti, o paieškos sistemos ją skaito kaip trumpą puslapio turinio aprašymą. Būtent todėl ši dalis nusipelno daugiau dėmesio nei duomenų bazės ID ar data. Šis nemokamas generatorius bet kokį tekstą paverčia į slug: įklijuokite pavadinimą į laukelį „Tekstas konvertavimui“, paspauskite „Generuoti“, ir rezultatas atsiras šalia kartu su kopijavimo mygtuku. Numatytosios parinktys yra tokios, kokių nori dauguma svetainių — mažosios raidės, brūkšneliai tarp žodžių, pašalinti nereikalingi jungiamieji žodžiai, transliteruotos nelotyniškos raidės. Taigi tinkamas slug sukuriamas vienu paspaudimu, ir kiekvienas iš šių nustatymų yra jungiklis, kurį galite pakeisti.
Viskas vyksta jūsų įrenginyje. Puslapis įkelia mažą JavaScript varikliuką ir jį paleidžia lokaliai: jūsų pavadinimai niekada nėra siunčiami į serverį, niekur neregistruojami, o įrankis veikia net ir atjungus interneto ryšį. Būtent todėl rezultatas atnaujinamas akimirksniu, kai tik pakeičiate nustatymą. Darbo eigą verta paminėti, nes ji paaiškina, kodėl išvestis yra prognozuojama: įklijuota nuoroda pirmiausia sutrumpinama iki jos paskutinio segmento, tada tekstas paverčiamas mažosiomis raidėmis, pašalinami stop žodžiai, transliteruojami nelotyniški simboliai, tada pašalinami skaičiai ir specialieji simboliai, jei to prašėte. Tai, kas lieka, sujungta jūsų pasirinktu skyrikliu, tuomet rezultatas apkerpamas iki maksimalaus ilgio, ir galiausiai besidubliuojantiems rezultatams pridedamas skaitinis priesagas. „Tekstas konvertavimui“ vienu metu priima iki 500 000 simbolių, o tai atitinka kelis tūkstančius straipsnių pavadinimų.
Viena eilutė — vienas slug. Įklijuokite visą pavadinimų sąrašą, ir kiekviena eilutė taps atskiru sunumeruotu slug'u, virš kurio pilkai bus rodomas pradinis pavadinimas. Todėl net penkiasdešimties elementų sąraše galėsite lengvai atskirti, kuris slug priklauso kuriai antraštei. Sąrašo, kuris jau yra faile, nebūtina kopijuoti per iškarpinę (clipboard): mygtukas „Įkelti iš failo“, esantis šalia įvesties laukelio, atidaro paprastą tekstinį failą — .txt, .csv, .md, .json ir panašiai — ir perkelia jo turinį į laukelį. Jūsų naršyklė nuskaito tą failą lygiai taip pat, kaip skaito jūsų įvestą tekstą, ir jis niekur nėra įkeliamas. „Padalinti įvestį pagal“ nustato, kaip sąrašas bus padalintas. „Automatinis“ yra numatytasis nustatymas: nauja eilutė visada atskiria elementus, o kablelis juos atskiria tik tada, kai įvestis yra viena eilutė, kurios visos dalys atrodo kaip savarankiškos vertės — todėl „kaina 3,5 EUR“ ir „5 skyrius: rezultatai, išvados“ lieka sveiki, užuot subyrėję į fragmentus. Pasirinkimai „Nauja eilutė“, „Kablelis“ ir „Tarpas“ leidžia aiškiai nurodyti taisyklę, kai jau žinote savo duomenų formatą. „Išvesties formatas“ nustato, kaip bus pateiktas rezultatų sąrašas — po vieną eilutėje, „Atskirta tarpais“ ar „Atskirta kableliais“ — ir tiek „Kopijuoti viską“, tiek „Išsaugoti į failą“ seka šiuo nustatymu. Skiltis „Istorija“ jūsų naršyklėje saugo paskutinius 10 sąrašų, todėl prieš valandą konvertuotas sąrašas vis dar ten.
Nelotyniškas tekstas yra ta dalis, kurią dauguma slug generatorių atlieka apytiksliai, bet retas kuris atlieka visiškai teisingai. URL adresas yra saugiausias naudojant paprastą ASCII formatą, todėl kirilica, graikų, arabų, kinų ir Europos kalbų raidės su diakritiniais ženklais turi būti konvertuotos. Pagrindinis klausimas — pagal kieno taisykles. Šis puslapis tai sprendžia dviem lygiais. Bendrasis lygis apima visus raštus: tai transliteracijos biblioteka, kuri pateikia protingą ASCII atitikmenį beveik bet kokiam įvestam simboliui, o tai ir reiškia „Automatinis (bet kokia kalba)“ parinktyje „Transliteruoti iš“. Specifinis lygis yra rankomis sukurti lentelių rinkiniai toms kalboms, kuriose bendrasis atsakymas neatitinka to, ką šalis realiai naudoja. Meniu „Transliteruoti iš“ nurodo tas kalbas, kurios šiandien turi savo lentelę, o sąrašas auga įrankiui palaikant vis daugiau kalbų. Pasirinkus vieną iš jų, lentelė įkeliama į redaguojamą tinklelį po „Transliteracijos taisyklės“, kur kiekviena raidė yra teksto laukelis, kurį galite pakeisti, o mygtukas „Atkurti numatytąsias taisykles“ grąžina viską į pradinę būseną. Ukrainiečių kalbos lentelė atitinka 2010 m. Ministrų kabineto nutarimą Nr. 55 — standartą, spausdinamą ukrainietiškuose pasuose, įskaitant detales, kurias lengva praleisti: зг tampa zgh (o ne zh), kad skirtųsi nuo ж; є, ї, й, ю ir я priima vieną formą žodžio pradžioje ir kitą jo viduje; o apostrofas ir minkštumo ženklas praleidžiami nepradedant naujo žodžio, todėl Знам'янка tampa znamianka, o ne znamyanka. Vokiečių kalbai pagal nutylėjimą naudojama išplėstinė forma ä → ae, ö → oe, ü → ue, kurią realiai naudoja vokiški adresai, tačiau galima rinktis ir paprastą variantą ä → a.
„Pašalinti stop žodžius“ pagal nutylėjimą yra įjungtas. Ši funkcija pašalina trumpus jungiamuosius žodžius — a, the, and, of, for — kurie ilgina slug'ą, nepridėdami jam jokios prasmės. Sąrašas, esantis po „Stop žodžiai“, yra visiškai redaguojamas ir pateikiamas jau užpildytas: angliškas sąrašas plius kalbos, kurios puslapyje esate, sąrašas. Taigi ukrainietiškas puslapis atpažįsta в, на, та ir і, o vokiškas — der, die ir das. Pridėkite savo žodžių, ištrinkite tuos, kuriuos norite palikti, arba visiškai išjunkite šią funkciją — tokiu atveju laukelis papilkės ir nebebus aktyvus. Dvi atviros pastabos apie tai. Stop žodžių šalinimas yra greičiau adreso vizualinio švarumo klausimas, o ne paieškos reitingo gerinimo priemonė — jūs gaunate trumpesnį, tvarkingesnį adresą, bet ne geresnę poziciją. Ir jei nutiktų taip, kad visi pavadinimo žodžiai yra šiame sąraše, rezultatas bus tiesiog tuščias, o įrankis jums apie tai praneš, užuot pateikęs tuščią langelį.
Likusieji jungikliai nustato galutinę formą. „Skyriklis slug'e“ parenka, kas bus tarp žodžių, ir numatytasis brūkšnelis nėra tik skonio reikalas: Google laiko brūkšnelį žodžių atskyrikliu, o apatinį brūkšnį — jungikliu. Todėl my_first_post robotui atrodo kaip vienas ilgas žodis, o my-first-post — kaip trys atskiri žodžiai. „Apatinis brūkšnys (_)“ pateikiamas toms sistemoms, kurios reikalauja būtent jo. „Mažosios raidės“ yra įjungtos, nes dauguma serverių skiria didžiąsias ir mažąsias raides, o mišrus registras yra lengvas kelias gauti du skirtingus URL tam pačiam puslapiui. „Pašalinti specialiuosius simbolius“ pašalina viską, kas nėra raidė, skaičius, tarpas, brūkšnelis ar apatinis brūkšnys — tai išlaiko skyrybos ženklus, kabutes ir jaustukus (emoji) už adreso ribų. Jaustukai pašalinami prieš pat transliteraciją specialiai tam, kad, pavyzdžiui, raketos jaustukas nevirstų žodžiu rocket. „Pašalinti skaičius“ yra išjungtas, nes pavadinime esantis skaičius dažniausiai yra svarbi jo dalis. „Maksimalus ilgis“ svyruoja nuo 10 iki 200 ir pagal nutylėjimą yra 80; kai slug'as yra ilgesnis, varikliukas jį nukerpa ties paskutiniu pilnu žodžiu, kuris telpa, užuot kirpęs jį per vidurį. Skaičius šalia kiekvieno rezultato rodo jo ilgį simboliais, ir jis paraudonuoja viršijus 60 — tai nėra griežta riba, bet tai taškas, kai paieškos rezultatuose slug'as pradedamas trumpinti ir jį tampa nepatogu įklijuoti į žinutę.
Yra dar du jungikliai, kurie paverčia masinį konvertavimą atgal į vieno paspaudimo darbą. „Padaryti slug'us unikalius“ išsprendžia problemą, kai du skirtingi pavadinimai susiveda į tą patį slug'ą — „Top 10 patarimų“ ir „Top-10 patarimų“ abu tampa top-10-patarimu — ir antrajam priskiria -2, trečiajam -3. Jei priesaga viršija jūsų nustatytą maksimalų ilgį, bazinis tekstas yra atitinkamai sutrumpinamas. Dviejų puslapių su tuo pačiu adresu problema yra kur kas pigiau išsprendžiama šiame sąraše nei jūsų CMS (turinio valdymo sistemoje). „Paimti slug iš įklijuoto URL“ veikia priešinga kryptimi: įklijuokite visą nuorodą, o įrankis paims paskutinę adreso dalį, pašalins užklausos eilutę ir bet kokią .html ar .php pabaigą, taip pat iškoduos procentinį kodavimą (percent-encoding). Taigi Vikipedijos nuoroda, besibaigianti %D0%9B%D1%8C%D0%B2%D1%96%D0%B2, grįš kaip lviv, o ne kaip šešioliktainių skaitmenų seka. Tai suveikia tik tada, kai visa eilutė yra nuoroda, todėl sakinio viduryje pacituotas adresas paliekamas toks, koks yra.
Kodėl verta rinktis šį slug generatorių?
- Tik naršyklėje: jūsų pavadinimai niekada nėra įkeliami, o puslapis veikia net neprisijungus prie interneto
- Masinis konvertavimas iš įklijuoto teksto ar failo, su pradiniu pavadinimu virš kiekvieno slug'o
- Realūs transliteracijos standartai kiekvienai kalbai, o ne viena bendra lentelė visoms
- Ukrainiečių kalba pagal 2010 m. nutarimą Nr. 55 — rašyba, naudojama pasuose
- Kiekviena taisyklė redaguojama raidė po raidės, su galimybe vienu paspaudimu atkurti numatytąsias
- Automatiniai -2 ir -3 priesagai, kad partijoje nebūtų dviejų vienodų adresų
- Įklijuokite nuorodą ir ištraukite iš jos slug'ą su iškoduotu procentiniu kodavimu
- Redaguojamas stop žodžių sąrašas, kuris jau yra užpildytas jūsų kalbai
- Saugus sutrumpinimas ties pilnu žodžiu, su simbolių skaitikliu šalia kiekvieno rezultato
- Nemokamas ir neribotas: jokios registracijos, jokių limitų, jokie duomenys nesaugomi mūsų serveriuose
Slug'ai reikalingi visur, kur puslapis turi turėti skaitomą adresą. Tinklaraštis ar naujienų svetainė kiekvieną antraštę paverčia adresu, ir būtent šiam tikslui šis įrankis ir buvo sukurtas: įklijuojate savaitės antraštes, gaunate savaitės URL adresus. Internetinė parduotuvė tą patį daro su produktų ir kategorijų pavadinimais, dažniausiai masiškai po importo, ir dažnai kalba, kurios abėcėlės adresas negali palaikyti. Dokumentacija ir žinių bazės tokiu pat būdu kuria inkarus (anchors) ir failų pavadinimus. Be interneto adresų, ta pati švari eilutė yra tai, ko jums reikia failo pavadinimui, kuris nesuges kitoje operacinėje sistemoje; duomenų bazės raktui, kurį žmogus galės perskaityti žurnale (log); šakos (branch) pavadinimui; nuotraukos pavadinimui medijos bibliotekoje ar skilties identifikatoriui statinių svetainių generatoriuje. Bet kuri vieta, kur žmogui skaitomas pavadinimas turi išlikti įrašytas į mašinai skaitomą lauką, yra vieta, kurioje reikalingas slug'as.
Prieš pasikliaujant šiuo įrankiu, verta žinoti kelis apribojimus. Tai yra generatorius, o ne validatorius: jis netikrins, ar slug'as jau užimtas jūsų svetainėje, nes neturi supratimo, kas joje yra — unikalumas, kurį jis garantuoja, yra tik tame sąraše, kurį ką tik konvertavote. Peradresavimai (redirects) taip pat yra jūsų darbas; paskelbto puslapio slug'o pakeitimas sugadina senąjį adresą, ir tai yra jūsų CMS (turinio valdymo sistemos), o ne šio įrankio sprendimas. „Išsaugoti į failą“ išsaugo paprastą tekstą, o ne CSV ar JSON. Automatinis atskyrimas kableliais priima sprendimą, kuris beveik visada yra teisingas, bet ne visada, ir būtent todėl „Padalinti įvestį pagal“ leidžia jums tai pakeisti. O transliteracija yra susitarimas, o ne vertimas — München tampa muenchen, o ne Munich — todėl kai puslapis turi nusistovėjusį pavadinimą tiksline kalba, tas pavadinimas yra geresnis slug'as nei bet koks automatinis originalo konvertavimas.