URL-slug-generator
Forvandl en titel til en ren, URL-sikker sti — kebab-case, små bogstaver, ingen accenter
Titel eller tekst
Slug
Hvad er URL-slug-generatoren?
Du har skrevet et blogindlæg med titlen "Sådan parser du en URL i JavaScript — En cafeejers guide (2026-udgaven)" og nu skal du bruge en URL-sti til det. Du vil ikke have %E2%80%94 derinde, du vil ikke have mellemrum, du vil ikke have versaler, der knækker på case-følsomme servere. Du vil have sadan-parser-du-en-url-i-javascript-en-cafeejers-guide-2026-udgaven. Det er hvad det her gør. Indsæt titlen, kopier sluggen. Selve termen kommer fra forlagsverdenen — se Wikipedia-opslaget om slugs for etymologien.
Algoritmen er den standard. Lav om til små bogstaver, kør derefter String.prototype.normalize('NFD') for at dekomponere Unicode-tegn til basisbogstav plus kombinerende mærker. Fjern mærkerne (så é bliver e, æ bliver ae, å bliver a, ø bliver o). Håndter et par almindelige ligaturer manuelt — ß bliver ss, ł bliver l. Erstat enhver række af ikke-alfanumeriske tegn med en enkelt bindestreg. Klip indledende og afsluttende bindestreger. Begræns til 80 tegn ved en ordgrænse, så du ikke ender med en slug afskåret midt i et ord.
Hvorfor kebab-case? Fordi bindestreger er konventionen. Googles retningslinjer for URL-struktur anbefaler bindestreger frem for understreger til ordadskillelse i URL'er — søgemaskiner parser bindestreger som ordgrænser. RFC 3986 definerer de ureserverede tegn i en URL-sti (bogstaver, cifre, bindestreg, punktum, understreg, tilde) og de fleste slug-konventioner holder sig til en delmængde af disse. Snake_case (mit_indlaeg_titel) og Title-Case-Slug (Mit-Indlaeg-Titel) er alternativer man ser, men kebab-case med små bogstaver er default overalt, fra praksis med rene URL'er til de fleste CMS-defaults.
Sådan bruger du slug-generatoren
Tre trin. Hvert matcher en knap på denne side.
Indsæt en titel eller indlæs eksemplet
Smid en titel, overskrift, produktnavn eller en hvilken som helst tekst i venstre panel. Klik på Eksempel for at indlæse et realistisk eksempel med tankestreger, accenter og parenteser — den slags titel der knækker naiv slug-kode. Eksempel-input:
Sådan parser du en URL i JavaScript — En cafeejers guide (2026-udgaven)Alt går — emoji, accenttegn, smarte anførselstegn, tankestreger, dobbelte bindestreger, flere mellemrum. Sluggen kommer ud ren.
Læs sluggen
Højre panel viser sluggen mens du skriver. Små bogstaver, med bindestreger, kun ASCII, begrænset til 80 tegn ved en ordgrænse. Hvis input ikke indeholdt nogen slug-bare tegn (f.eks. kun emoji eller kun tegnsætning), ser du en venlig besked i stedet for et forvirrende tomt resultat.
Kopier eller download
Klik på Kopier for at sende sluggen til udklipsholderen, eller på Download for at gemme den som en .txt-fil. Brug Ryd i input-panelet for at starte forfra med en ny titel.
Hvornår du faktisk ville bruge dette
URL'er til blogindlæg
Dit CMS genererer slugs automatisk men de er grimme — fjerner accenter forkert, efterlader understreger, håndterer ikke smarte anførselstegn. Du indsætter titlen her, får en ren slug, indsætter den tilbage i URL-feltet. Virker for WordPress, Ghost, håndlavede Next.js-blogs, alt der lader dig overskrive sluggen.
Produkt- eller kategori-URL'er i e-handel
Marco Rivera tilføjer et nyt produkt der hedder "Crème Brûlée Sæt — 4-pak (Limited Edition)". URL'en skal være /produkter/creme-brulee-saet-4-pak-limited-edition, ikke /produkter/Crème+Brûlée+Sæt+%E2%80%94+4-pak+%28Limited+Edition%29. Slug det, sæt det ind.
Filnavne fra brugerindtastede titler
Du gemmer uploadede dokumenter på disk og kunden skrev "Q4-rapport — Endelig (v3).docx" som titel. Det vil du ikke have som filnavn. Slug titlen, tilføj .docx, skriv filen. Virker på samme måde for S3-nøgler, GitHub-branchnavne fra issue-titler, og Slack-kanalnavne fra projektnavne.
Migrere indhold fra et andet CMS
Priya Patel flytter 800 artikler fra et gammelt CMS til et nyt og kildetitlerne har inkonsistent kodning — nogle med accenter, nogle uden, nogle med emoji fra et redesign i 2018. Kør hver titel gennem sluggeren, dedupliker, og du har dit nye URL-kort klar til redirect-tabellen.
Almindelige spørgsmål
Hvorfor fjerner I accenter i stedet for at procent-kode dem?
Fordi sluggen er ment til at være læsbar for mennesker. café i sluggen bliver %C3%A9 i den faktiske URL, hvilket ser forfærdeligt ud i en browserlinje, knækker copy-paste i chats og forvirrer ikke-tekniske læsere. At reducere til ASCII holder URL'en læsbar og SEO-venlig. NFD-normalisering er standardmåden at lave den dekomposition.
Hvad med ikke-latinske skriftsystemer — kinesisk, arabisk, hindi?
NFD dekomponerer ikke ideogrammer eller skriftsystemer der ikke har en basis+kombinerende-mærke-struktur. Så en titel på kinesisk producerer en tom slug her, og du ser beskeden "ingen slug-bare tegn". For ikke-latinske skriftsystemer har du to muligheder: translitterer først (med et bibliotek som ICU eller unidecode), eller brug det oprindelige skriftsystem i URL'en — moderne browsere og Google håndterer Unicode i URL'er uden problemer, bare mindre pænt.
Hvorfor begrænse til 80 tegn?
Ingen hård regel, men URL'er der overskrider ~80 tegn i sti-segmentet begynder at bryde grimt i e-mails, sociale previews og trykte medier. Googles vejledning sætter ikke et tal men anbefaler "enkle, beskrivende" URL'er — lange er hverken eller. Begrænsningen finder den sidste bindestreg før 80 tegn for at undgå et snit midt i et ord.
Kan den håndtere emoji?
Ja. Emoji bliver fjernet sammen med andre ikke-alfanumeriske tegn. Så "🎉 Ny Lancering! 🚀" bliver ny-lancering. Hvis din slug ender tom (kun emoji-input), får du den venlige tom-slug-besked i stedet for en ødelagt URL.
Hvad er forskellen mellem dette og URL-kodning af titlen?
URL-kodning beholder hvert tegn men escape:r de usikre — så mellemrum bliver %20, accenter bliver procent-escaped UTF-8-bytes. Resultatet er en gyldig URL men ulæselig. En slug er noget andet: et menneskevenligt sti-segment der smider de tegn ud, der ikke hører til. Brug URL-kodning til query-parametre, slugs til sti-segmenter. WHATWG URL Standard har de præcise definitioner af begge.
Skal jeg bruge kebab-case eller snake_case?
Kebab-case (mit-indlaeg-titel) til URL'er — det er konventionen og det søgemaskiner behandler som ordadskillere. Snake_case (mit_indlaeg_titel) er okay til variabelnavne og databaseidentifikatorer, men i URL'er behandles understreger ofte som en del af ordet, hvilket skader SEO. Dette værktøj bruger kebab som default. Hvis du har brug for snake, lav find-and-replace af bindestreger i outputtet.
Andre URL- og tekstværktøjer
En slug er én del af en URL. Her er hvad andet der passer med: