Tittel eller tekst

Slug

Hva er URL-slug-generatoren?

Du har skrevet et blogginnlegg med tittelen "Slik parser du en URL i JavaScript — En kafeeiers guide (2026-utgaven)" og nå trenger du en URL-sti til det. Du vil ikke ha %E2%80%94 der inne, du vil ikke ha mellomrom, du vil ikke ha store bokstaver som knekker på case-sensitive servere. Du vil ha slik-parser-du-en-url-i-javascript-en-kafeeiers-guide-2026-utgaven. Det er det dette gjør. Lim inn tittelen, kopier sluggen. Selve termen kommer fra forlagsverdenen — se Wikipedia-oppføringen om slugs for etymologien.

Algoritmen er den standard. Gjør om til små bokstaver, kjør så String.prototype.normalize('NFD') for å dekomponere Unicode-tegn til basisbokstav pluss kombinerende merker. Fjern merkene (så é blir e, æ blir ae, å blir a, ø blir o). Håndter et par vanlige ligaturer manuelt — ß blir ss, ł blir l. Erstatt enhver rekke ikke-alfanumeriske tegn med en enkelt bindestrek. Klipp bort innledende og avsluttende bindestreker. Begrens til 80 tegn ved en ordgrense, slik at du ikke ender med en slug avskåret midt i et ord.

Hvorfor kebab-case? Fordi bindestreker er konvensjonen. Googles retningslinjer for URL-struktur anbefaler bindestreker fremfor understreker for ordadskillelse i URL-er — søkemotorer parser bindestreker som ordgrenser. RFC 3986 definerer de ureserverte tegnene i en URL-sti (bokstaver, sifre, bindestrek, punktum, understrek, tilde) og de fleste slug-konvensjoner holder seg til en delmengde av disse. Snake_case (mitt_innlegg_tittel) og Title-Case-Slug (Mitt-Innlegg-Tittel) er alternativer du ser, men kebab-case med små bokstaver er default overalt, fra praksis med rene URL-er til de fleste CMS-defaultene.

Slik bruker du slug-generatoren

Tre trinn. Hvert matcher en knapp på denne siden.

1

Lim inn en tittel eller last eksempelet

Slipp en tittel, overskrift, produktnavn eller hvilken som helst tekst i venstre panel. Klikk Eksempel for å laste et realistisk eksempel med tankestreker, aksenter og parenteser — den typen tittel som knekker naiv slug-kode. Eksempel-input:

Slik parser du en URL i JavaScript — En kafeeiers guide (2026-utgaven)

Alt går — emoji, aksenttegn, smarte anførselstegn, tankestreker, doble bindestreker, flere mellomrom. Sluggen kommer ut ren.

2

Les sluggen

Høyre panel viser sluggen mens du skriver. Små bokstaver, med bindestreker, kun ASCII, begrenset til 80 tegn ved en ordgrense. Hvis input ikke inneholdt noen slug-bare tegn (f.eks. bare emoji eller bare tegnsetting), ser du en vennlig melding i stedet for et forvirrende tomt resultat.

3

Kopier eller last ned

Klikk Kopier for å sende sluggen til utklippstavlen, eller Last ned for å lagre den som en .txt-fil. Bruk Tøm i input-panelet for å starte på nytt med en ny tittel.

Når du faktisk ville brukt dette

URL-er for blogginnlegg

CMS-en din genererer slugs automatisk, men de er stygge — fjerner aksenter feil, lar understreker stå, håndterer ikke smarte anførselstegn. Du limer inn tittelen her, får en ren slug, limer den tilbake i URL-feltet. Funker for WordPress, Ghost, hjemmelagde Next.js-blogger, alt som lar deg overstyre sluggen.

Produkt- eller kategori-URL-er i e-handel

Marco Rivera legger til et nytt produkt som heter "Crème Brûlée Sett — 4-pakning (Begrenset Utgave)". URL-en må være /produkter/creme-brulee-sett-4-pakning-begrenset-utgave, ikke /produkter/Crème+Brûlée+Sett+%E2%80%94+4-pakning+%28Begrenset+Utgave%29. Slug, plug.

Filnavn fra brukerinntastede titler

Du lagrer opplastede dokumenter på disk og kunden skrev "Q4-rapport — Endelig (v3).docx" som tittel. Det vil du ikke ha som filnavn. Slug tittelen, legg på .docx, skriv filen. Funker likt for S3-nøkler, GitHub-branchnavn fra issue-titler, og Slack-kanalnavn fra prosjektnavn.

Migrere innhold fra et annet CMS

Priya Patel flytter 800 artikler fra et gammelt CMS til et nytt og kildetitlene har inkonsistent koding — noen aksentuerte, noen ikke, noen med emoji fra et redesign i 2018. Kjør hver tittel gjennom sluggeren, dedupliser, og du har det nye URL-kartet klart for redirect-tabellen.

Vanlige spørsmål

Hvorfor fjerner dere aksenter i stedet for å prosent-kode dem?

Fordi sluggen er ment å være lesbar for mennesker. café i sluggen blir %C3%A9 i den faktiske URL-en, som ser forferdelig ut i en nettleserlinje, knekker copy-paste i chat og forvirrer ikke-tekniske lesere. Å redusere til ASCII holder URL-en lesbar og SEO-vennlig. NFD-normalisering er standardmåten å gjøre den dekomposisjonen.

Hva med ikke-latinske skriftsystemer — kinesisk, arabisk, hindi?

NFD dekomponerer ikke ideogrammer eller skriftsystemer som ikke har en basis+kombinerende-merke-struktur. Så en tittel på kinesisk produserer en tom slug her, og du ser meldingen "ingen slug-bare tegn". For ikke-latinske skriftsystemer har du to alternativer: translitterer først (med et bibliotek som ICU eller unidecode), eller bruk det opprinnelige skriftsystemet i URL-en — moderne nettlesere og Google håndterer Unicode i URL-er uten problemer, bare mindre pent.

Hvorfor begrense til 80 tegn?

Ingen hard regel, men URL-er som overskrider ~80 tegn i sti-segmentet begynner å brytes stygt i e-poster, sosiale previews og trykte medier. Googles veiledning setter ikke et tall, men anbefaler "enkle, beskrivende" URL-er — lange er ingen av delene. Begrensningen finner den siste bindestreken før 80 tegn for å unngå et kutt midt i et ord.

Håndterer den emoji?

Ja. Emoji blir fjernet sammen med andre ikke-alfanumeriske tegn. Så "🎉 Ny Lansering! 🚀" blir ny-lansering. Hvis sluggen din ender tom (bare emoji-input), får du den vennlige tom-slug-meldingen i stedet for en ødelagt URL.

Hva er forskjellen mellom dette og URL-koding av tittelen?

URL-koding beholder hvert tegn men escape:r de usikre — så mellomrom blir %20, aksenter blir prosent-escaped UTF-8-bytes. Resultatet er en gyldig URL, men uleselig. En slug er noe annet: et menneskevennlig sti-segment som kaster tegnene som ikke hører til. Bruk URL-koding for query-parametre, slugs for sti-segmenter. WHATWG URL Standard har de presise definisjonene av begge.

Skal jeg bruke kebab-case eller snake_case?

Kebab-case (mitt-innlegg-tittel) for URL-er — det er konvensjonen og det søkemotorer behandler som ordadskillere. Snake_case (mitt_innlegg_tittel) er greit for variabelnavn og databaseidentifikatorer, men i URL-er behandles understreker ofte som del av ordet, noe som skader SEO. Dette verktøyet bruker kebab som default. Hvis du trenger snake, gjør find-and-replace av bindestreker i outputen.

Andre URL- og tekstverktøy

En slug er én del av en URL. Her er hva annet som passer med: