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.

1

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.

2

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.

3

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: