URL Slug Generator

Gjør enhver tittel om til en ren URL-slug i nettleseren din — én om gangen eller en hel liste på én gang. Ekte translitterasjonsstandarder, redigerbare regler, og ingenting blir noen gang lastet opp.

Fyll inn teksten som skal konverteres
Avanserte innstillinger

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?

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.

FAQ

Hvordan oppretter jeg en URL-slug?

Lim inn tittelen din i "Tekst å konvertere" og trykk på "Generer". Resultatet vises med en kopier-knapp ved siden av, konvertert med de standardinnstillingene de fleste nettsteder foretrekker: små bokstaver, bindestreker mellom ord, fyllord fjernet og ikke-latinske bokstaver translitterert. Hver av disse er en bryter du kan endre på, og "Avanserte innstillinger" inneholder resten — skilletegn, maksimal lengde, stoppordliste og translitterasjonsregler.

Kan jeg konvertere en hel liste med titels på én gang?

Ja. Lim inn opptil 500 000 tegn — noen tusen overskrifter — eller hent dem rett ut fra en fil med "Last fra fil", knappen ved siden av inndatafeltet, som leser den i nettleseren din uten å laste den opp. Hver linje blir sin egen slug, nummerert, med den opprinnelige tittelen vist over, slik at du kan koble dem sammen. "Del inndata med" styrer hvordan listen deles opp, "Utdataformat" bestemmer om batchen kommer tilbake som linjer, mellomromseparert eller kommaseparert, og både "Kopier alt" og "Lagre til fil" tar hele listen på én gang.

Hvordan håndterer generatoren kyrilliske tegn og bokstaver med aksent?

Den translitterer dem til ASCII i to lag. Ethvert skriftspråk — kyrillisk, gresk, arabisk, kinesisk, latinsk med aksent — dekkes av et generelt translitterasjonsbibliotek, noe som er det "Automatisk (alle språk)" bruker. På toppen av dette ligger håndbygde tabeller for de språkene der det generiske svaret ikke stemmer med hva de landene faktisk bruker; menyen "Translitterer fra" navngir de som har en tabell i dag. Velg en av dem og dens tabell lastes inn, hvor hver bokstav kan redigeres. Norsk trenger ingen egen tabell: det generelle laget skriver æ → ae, ø → o og å → a, altså nøyaktig slik norske adresser gjør det — Tromsø blir tromso og blåbær blir blabaer. Velger du den danske tabellen, gir «Enkel» det samme, mens «Traditionel» gir den danske skrivemåten med oe og aa.

Hvilken translitterasjonsstandard brukes for ukrainsk?

Ministerkabinettets resolusjon nr. 55 av 27. januar 2010 — den standarden som brukes i ukrainske pass. Dette inkluderer de delene det er lett å ta feil av: зг blir til zgh for å forbli adskilt fra ж, bokstavene є, ї, й, ю 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 Знам'янка blir til znamianka snarere enn znamyanka. En annen variant med ya, yu og yi overalt er tilgjengelig hvis du foretrekker det enklere utseendet.

Kan jeg endre hvordan en spesifikk bokstav translittereres?

Ja. Åpne "Translitterasjonsregler" og du vil se at hver bokstav i tabellen er et tekstfelt: skriv inn hva du vil at bokstaven skal bli, og resultatet oppdateres mens du skriver. Å tømme et felt fjerner bokstaven helt. Redigeringene dine huskes i din egen nettleser til neste gang, og "Tilbakestill regler" gjenoppretter standardtabellen når du måtte ønske den tilbake.

Hva er stoppord og burde jeg fjerne dem?

Dette er de små bindeordene — i, og, at, for, til — som gjør en slug lengre uten å gjøre den tydeligere. Fjerning av disse er slått på som standard, og listen under "Stoppord" er redigerbar; den ankommer forhåndsutfylt med en engelsk liste pluss en liste for språket på siden du er på. Vær likevel ærlig om fordelen: det produserer en kortere, ryddigere adresse, ikke en bedre posisjon i søkemotorene. Hvis en tittel bare består av stoppord, vil verktøyet fortelle deg det i stedet for å returnere en tom slug.

Burde jeg bruke bindestrek eller understrek i en slug?

Bindestrek, med mindre noe i teknologistacken din krever noe annet. Google behandler en bindestrek som et skilletegn mellom ord og en understrek som et tegn som binder dem sammen, slik at my_first_post blir lest som ett langt ord mens my-first-post blir lest som tre. Generatoren velger som standard bindestrek av nettopp den grunn; "Skilletegn i slugen" tilbyr "Understrek (_)" for de systemene som trenger det.

Hvor lang burde en URL-slug være?

Kort nok til å kunne leses med et blikk — de første par ordene bærer meningen, og resten er vanligvis bare halen på en setning. Tallet ved siden av hvert resultat er lengden i tegn og blir rødt når den passerer 60, noe som er omtrent der søkeresultatene begynner å avkorte den og der det blir tungvint å lime den inn i en melding. "Maks lengde" setter et absolutt tak fra 10 til 200 tegn, med en standard på 80.

Kutter den ord i to hvis slugen er for lang?

Nei. Når en slug overskrider den maksimale lengden, rygger motoren tilbake til det siste hele ordet som får plass og kutter der, slik at en avkortet slug fremdeles leses som ord i stedet for å ende midt i en stavelse. Det samme gjelder når et numerisk suffiks legges til en gjentakelse: basen forkortes først, slik at den ferdige slugen fremdeles respekterer grensen din.

Hva skjer hvis to titler produserer den samme slugen?

"Gjør sluger unike" er slått på som standard og håndterer dette: den første forekomsten beholder den vanlige slugen, den andre får -2, den tredje -3, og så videre. Den fanger opp det vanlige tilfellet der to forskjellige titler reduseres til det samme — "Topp 10 tips" og "Topp-10 tips" blir begge til topp-10-tips. Slår du den av, får du den rå utdataen med duplikatene intakt. Merk at unikheten bare garanteres i den batchen du akkurat konverterte; verktøyet kan ikke vite hva som allerede eksisterer på nettstedet ditt.

Kan jeg lime inn en URL i stedet for en tittel?

Ja. "Hent slugen fra en innlimt URL" er slått på som standard, og når en hel linje er en lenke trekker verktøyet 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 snarere enn en rekke heksadesimale siffer. Den aktiveres bare på en linje som utelukkende er en lenke, så en URL som er sitert inni en setning behandles som vanlig tekst.

Sendes teksten min til en server?

Nei. Konverteringen kjører i nettleseren din som lokal JavaScript. Ingenting lastes opp, ingenting blir loggført, og så snart siden har lastet, fortsetter den å fungere uten nett. Upubliserte overskrifter, interne produktnavn og klientarbeid blir værende på maskinen din, noe som er den praktiske grunnen til å foretrekke et lokalt verktøy fremfor et serverbasert for akkurat denne oppgaven.

Hvorfor delte min ene setning seg i to sluger?

Fordi den inneholdt et komma og "Del inndata med" var satt til "Automatisk". Denne modusen behandler et linjeskift som et definitivt skilletegn og et komma som et sannsynlig et, og den deler bare på kommaer når en enkelt linjes deler alle ser ut som frittstående verdier — et desimaltall som 3,5 eller en setning med kolon blir med vilje holdt samlet. Hvis en tittel fremdeles deles og ikke burde det, sett "Del inndata med" til "Linjeskift", så vil inndataene bare bli kuttet der du faktisk trykket Enter.