sansaccent
Petit utilitaire pour la normalisation de texte français en URLs conviviales (slugs).
Description
sansaccent est un utilitaire spécialement conçu pour le français qui normalise l'accentuation et les caractères spéciaux, en remplaçant les espaces par des tirets. Cette bibliothèque est particulièrement utile pour :
- Générer des URLs SEO-friendly à partir de titres français
- Créer des identifiants de fichiers sans caractères problématiques
- Normaliser des chaînes de caractères pour des systèmes qui ne supportent pas les accents
Fonctionnalités
✅ Suppression des accents et caractères diacritiques
✅ Conversion en minuscules
✅ Gestion des ligatures françaises (œ → oe, æ → ae)
✅ Remplacement des caractères spéciaux sémantiques (€ → euro, & → et, @ → at, % → pourcent)
✅ Normalisation des espaces multiples
✅ Suppression des guillemets typographiques
✅ Support Unicode complet
✅ Trait Slugify pour &str, String et Cow<'_, str>
✅ Intégration Serde optionnelle (feature serde) pour sérialiser/désérialiser des slugs
Installation
Ajoutez sansaccent à votre Cargo.toml :
[]
= "1.0.0"
Ou utilisez cargo pour l'installer :
Activer l'intégration Serde (optionnelle):
[]
= { = "1.0.0", = ["serde"] }
Usage
Exemple basique
use slugify;
Exemple avec le trait Slugify
use Slugify;
Exemple avec Serde (feature serde)
use ;
Cas d'usage avancés
use slugify;
// Texte avec caractères spéciaux
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
// Guillemets et caractères typographiques
assert_eq!;
assert_eq!;
// Gestion des espaces multiples
assert_eq!;
// Suppression des séparateurs en début/fin
assert_eq!;
assert_eq!;
API
slugify(input: &str) -> String
Convertit une chaîne de caractères en slug URL-friendly.
Paramètres :
input: &str- La chaîne à convertir
Retour :
String- La chaîne normalisée
Exemple :
let result = slugify;
assert_eq!;
Tests
Pour exécuter la suite de tests complète :
Pour exécuter les tests avec sortie détaillée :
Pour exécuter un test spécifique :
Couverture des tests
La bibliothèque inclut plus de 19 tests couvrant :
- ✅ Fonctionnalité de base
- ✅ Gestion des accents et emphasis
- ✅ Normalisation des espaces
- ✅ Ligatures françaises (œ, æ)
- ✅ Caractères spéciaux sémantiques
- ✅ Guillemets typographiques
- ✅ Cas limites (chaînes vides, espaces uniquement)
- ✅ Caractères Unicode et emojis
- ✅ Performance avec de longues chaînes
- ✅ Exemples de documentation
Licence
MIT OR Apache-2.0
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Support
Pour signaler un bug ou demander une fonctionnalité, veuillez ouvrir une issue sur le dépôt du projet.