En slug er den lesbare halen på en nettadresse — my-first-post i example.com/blog/my-first-post. Det er den delen en person kan lese før de bestemmer seg for å klikke, og den delen en søkemotor leser som en kort beskrivelse av hva siden inneholder, noe som er grunnen til at den fortjener mer omtanke enn en database-ID eller en dato. Denne gratis generatoren gjør hvilken som helst tekst om til en: lim inn en tittel i "Tekst å konvertere", trykk på "Generer", og resultatet vises med en kopier-knapp ved siden av. Standardinnstillingene er de de fleste nettsteder foretrekker — små bokstaver, bindestreker mellom ord, vanlige fyllord fjernet, ikke-latinske bokstaver translitterert — slik at en brukbar slug bare er ett klikk unna, og hver av disse avgjørelsene er en bryter du kan endre på.
Alt skjer på din egen enhet. Siden laster inn en liten JavaScript-motor og kjører den lokalt: titlene dine blir aldri lastet opp, aldri loggført, og verktøyet fortsetter å fungere selv med forbindelsen slått av. Dette er også grunnen til at resultatet oppdateres i det øyeblikket du endrer en innstilling. Rekkefølgen på arbeidet er verdt å nevne, fordi det er det som gjør utdataene forutsigbare: en innlimt lenke reduseres først til sitt siste stisegment, deretter gjøres teksten om til små bokstaver, så droppes stoppord, deretter translittereres ikke-latinske tegn, så fjernes tall og spesialtegn hvis du har bedt om det, deretter slås det som er igjen sammen med skilletegnet ditt, så trimmes resultatet til den maksimale lengden, og til slutt får en duplikat et numerisk suffiks. "Tekst å konvertere" godtar opptil 500 000 tegn om gangen, noe som tilsvarer noen tusen artikkeltitler.
Én linje inn, én slug ut. Lim inn en hel liste med titler, og hver linje blir sin egen nummererte slug, med den opprinnelige tittelen vist i grått over den, slik at du i en bunke på femti fremdeles kan skille hvilken slug som tilhører hvilken overskrift. En liste som allerede befinner seg i en fil trenger ikke å gå via utklippstavlen: "Last fra fil", knappen ved siden av inndatafeltet, åpner en ren tekstfil — .txt, .csv, .md, .json og lignende — og slipper innholdet inn i feltet. Nettleseren din leser denne filen nøyaktig på samme måte som den leser det du skriver inn, og den lastes ikke opp noe sted. "Del inndata med" avgjør hvordan listen klippes opp. "Automatisk" er standard: et linjeskift skiller alltid elementer, mens et komma bare skiller dem når inndataene er en enkelt linje der alle delene ser ut som frittstående verdier — slik at "pris 3,5 millioner kr" og "Kapittel 5: resultater, konklusjoner" forblir hele i stedet for å splittes opp i fragmenter. "Linjeskift", "Komma" og "Mellomrom" tvinger frem valget når du allerede kjenner formen på dataene dine. "Utdataformat" bestemmer hvordan en batch kommer tilbake når du kopierer den — én per linje, mellomromseparert eller kommaseparert — og både "Kopier alt" og "Lagre til fil" følger dette. "Historikk" beholder de siste 10 batchene dine i din egen nettleser, så en liste du konverterte for en time siden er der fremdeles.
Ikke-latinsk tekst er det området de fleste slug-generatorer får omtrent riktig, men de færreste får helt riktig. En URL er tryggest i ren ASCII, så kyrilliske, greske, arabiske, kinesiske og europeiske bokstaver med aksent må konverteres, og det eneste virkelige spørsmålet er etter hvilken regel. Denne siden svarer på dette i to lag. Det generelle laget dekker ethvert skriftspråk: et translitterasjonsbibliotek med et fornuftig ASCII-svar for nesten ethvert tegn du kan taste inn, noe som er det "Translitterer fra" betyr når den står på "Automatisk (alle språk)". Det spesifikke laget er et sett med håndbygde tabeller for de språkene der det generiske svaret ikke er det landet faktisk bruker; menyen "Translitterer fra" navngir de som har en tabell i dag, og utvalget vokser etter hvert som verktøyet når flere språk som trenger en. Ved å velge en av dem lastes tabellen inn i et redigerbart rutenett under "Translitterasjonsregler", der hver bokstav er et tekstfelt du kan endre, og "Tilbakestill regler" setter det tilbake. Den ukrainske tabellen følger Ministerkabinettets resolusjon nr. 55 av 2010, den standarden som er trykt i ukrainske pass, inkludert de detaljene som er lette å bomme på: зг blir til zgh i stedet for zh slik at den forblir adskilt fra ж; є, ї, й, ю og я tar én form i begynnelsen av et ord og en annen inni det; og apostrofen og det bløte tegnet droppes uten å starte et nytt ord, slik at Знам'янка kommer ut som znamianka og ikke znamyanka. Tysk har som standard den utvidede varianten ä → ae, ö → oe, ü → ue som tyske adresser faktisk bruker, med en enkel ä → a-variant hvis du foretrekker det.
"Fjern stoppord" er på som standard. Den fjerner de små bindeordene — i, og, at, for, til — som forlenger en slug uten å tilføre mening til den. Listen under "Stoppord" er fullt redigerbar og kommer allerede ferdig utfylt: en engelsk liste pluss en liste for språket på siden du befinner deg på, slik at den norske siden kjenner til og, i, at, det, er, til, en og av. Legg til dine egne ord, slett de du ønsker å beholde, eller slå funksjonen helt av, i så fall blir feltet grået ut i stedet for å late som om det fortsatt betyr noe. To ærlige bemerkninger om dette. Å fjerne stoppord er en liten gevinst i ryddighet snarere enn en brekkstang for rangering — du får en kortere, renere adresse, ikke en bedre posisjon i søket. Og hvis hvert eneste ord i en tittel tilfeldigvis står på listen, er det ærlige resultatet ingenting i det hele tatt, så verktøyet forteller deg dette i stedet for å gi deg en tom boks.
Resten av bryterne bestemmer formen. "Skilletegn i slugen" velger hva som skal stå mellom ordene, og standardinnstillingen med bindestrek er ikke en smakssak: Google leser en bindestrek som et ordskilletegn og en understrek som noe som binder ordene sammen, så my_first_post når en crawler som ett langt ord mens my-first-post når den som tre. "Understrek (_)" er der for systemene som insisterer på det. "Små bokstaver" er på fordi de fleste servere behandler adresser som store/små-bokstavsensitive, og en blanding av store og små bokstaver er en enkel måte å ende opp med to URL-er for én side. "Fjern spesialtegn" fjerner alt som ikke er en bokstav, et tall, et mellomrom, en bindestrek eller en understrek, noe som er det som holder tegnsetting, anførselstegn og emojier ute av en adresse — emojier fjernes spesifikt før translitterasjon slik at en rakett ikke blir til ordet rocket. "Fjern tall" er av, fordi et tall i en tittel som regel er en del av selve tittelen. "Maks lengde" går fra 10 til 200 og har 80 som standard; når en slug er lengre enn det kutter motoren trygt ved det siste hele ordet som passer, i stedet for å kutte midt i et ord. Tallet ved siden av hvert resultat er lengden i tegn, og det blir rødt over 60 — ikke en hard grense, men punktet der en slug begynner å bli avkortet i søkeresultater og blir klønete å lime inn i en melding.
Ytterligere to brytere eksisterer fordi de forvandler en massekonvertering tilbake til en ettklikksjobb. "Gjør sluger unike" fanger opp tilfellet der to forskjellige titler reduseres til den samme slugen — "Topp 10 tips" og "Topp-10 tips" blir begge til topp-10-tips — og gir den andre en -2, den tredje en -3, og forkorter først basen hvis suffikset ville presse den forbi din maksimale lengde. To sider på samme adresse er et problem det er langt billigere å fange opp i denne listen enn i ditt CMS. "Hent slugen fra en innlimt URL" fungerer i motsatt retning: lim inn en fullstendig lenke og verktøyet trekker ut den siste delen av stien, dropper query-strengen og eventuelle .html- eller .php-endelser, og dekoder prosentkoding, slik at en Wikipedia-adresse som slutter på %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 kommer tilbake som lviv i stedet for en rekke heksadesimale sifre. Den utløses bare når hele linjen er en lenke, så en URL sitert i en setning blir liggende der den er.
Hvorfor velge denne slug-generatoren?
- Bare i nettleseren: titlene dine lastes aldri opp, og siden fortsetter å fungere offline
- Massekonvertering fra utklipp eller en tekstfil, med kildetittelen over hver slug
- Ekte translitterasjonsstandarder per språk, ikke bare én generisk tabell for alle
- Ukrainsk etter resolusjon nr. 55 av 2010 — stavemåten brukt i pass
- Hver regel kan redigeres bokstav for bokstav, med en tilbakestilling med ett klikk
- Automatiske -2 og -3 suffikser slik at ingen slugs i en batch kolliderer
- Lim inn en lenke og få slugen ut av den, med prosentkoding dekodet
- En redigerbar stoppordliste som ankommer ferdig utfylt for ditt språk
- Trygg avkorting ved et helt ord, med tegntelling ved siden av hvert resultat
- Gratis og ubegrenset: ingen registrering, ingen kvote, ingenting lagres på våre servere
Sluger trengs overalt der en side må bære en lesbar adresse. En blogg eller en nyhetsside gjør hver overskrift om til en, noe som er nettopp det tilfellet dette verktøyet ble bygget rundt: lim inn ukens overskrifter, få ukens URL-er. En nettbutikk gjør det samme for produkt- og kategorinavn, vanligvis i bulk etter en import, og som regel på et språk hvis alfabet adressen ikke kan inneholde. Dokumentasjon og kunnskapsbaser bygger ankere og filnavn på samme måte. Utover nettadresser er den samme rene strengen det du ønsker for et filnavn som ikke vil gå i stykker på et annet operativsystem, en databasenøkkel en person kan lese i en logg, et branch-navn, et bildenavn i et mediebibliotek, eller identifikatoren for en seksjon i en statisk side-generator. Ethvert sted der et lesbart navn må overleve å bli lagt inn i et maskinlesbart felt, er et sted der en slug hører hjemme.
Et par begrensninger er verdt å kjenne til før du stoler på den. Dette er en generator, ikke en validator: den vil ikke sjekke om en slug allerede er tatt på nettstedet ditt, fordi den ikke har noen anelse om hva nettstedet ditt inneholder — unikheten den garanterer er bare innenfor den batchen du har foran deg. Omdirigeringer (redirects) er også din jobb; å endre slugen til en publisert side ødelegger dens gamle adresse, og det er en beslutning for ditt CMS i stedet for for dette verktøyet. "Lagre til fil" skriver ren tekst, ikke CSV eller JSON. Den automatiske oppdelingen tar en beslutning om kommaer som er riktig i nesten alle tilfeller, men ikke i absolutt alle, noe som er nøyaktig grunnen til at "Del inndata med" lar deg overstyre det. Og translitterasjon er en konvensjon snarere enn en oversettelse — München blir til muenchen, ikke Munich — så når en side har et etablert navn på målspråket, vil dette navnet alltid være en bedre slug enn noen automatisk konvertering av originalen.