L'apostrophe française pose un vrai casse-tête pour un slug : « l'été » ou « aujourd'hui » contiennent une véritable apostrophe grammaticale, l'élision d'une voyelle, pas juste un signe de ponctuation décoratif. Un slugifieur ne fait pourtant aucune différence entre cette apostrophe-là et n'importe quel autre signe : elle est supprimée exactement comme une virgule, ce qui aplatit « l'été » en l-ete ou simplement ete selon l'outil, sans distinction linguistique.
Ce que fait la conversion en slug
- Met toutes les lettres en minuscules.
- Remplace les espaces, apostrophes et la ponctuation par des tirets.
- Translittère ou supprime les caractères hors du latin de base (comme le cyrillique ou les lettres accentuées).
- Réduit les tirets répétés et retire les tirets en début et fin de chaîne.
Par exemple, le titre « Bonjour, le Monde ! Comment ça va ? » devient quelque chose comme bonjour-le-monde-comment-ca-va.
Pourquoi un simple URL-encode ne suffit pas
Le percent-encoding (par exemple %C3%A9 pour « é ») est techniquement valide dans une URL, mais illisible pour un humain et paraît peu fiable dans une barre d'adresse ou lors du partage d'un lien. Un slug résout précisément le problème de lisibilité, pas seulement de validité technique.
À quoi ça sert
- Générer automatiquement l'URL d'un article de blog à partir de son titre en français.
- Créer un identifiant lisible à partir du nom d'un produit pour une boutique en ligne.
- Construire un nom de fichier ou une classe CSS à partir d'un texte quelconque, en évitant les caractères interdits.
Collisions : quand des titres différents donnent le même slug
Les titres « Bonjour, le Monde ! » et « bonjour le monde » se transforment, après normalisation (minuscules, suppression de la ponctuation), en un seul et même slug bonjour-le-monde, alors que les textes source sont différents. Si le slug sert d'identifiant unique (dans l'URL d'un article, par exemple), cette collision doit être résolue séparément — typiquement en ajoutant un suffixe numérique ou un ID au doublon.