special_characters_handler 1.1.0 copy "special_characters_handler: ^1.1.0" to clipboard
special_characters_handler: ^1.1.0 copied to clipboard

A powerful framework for handling special characters, emojis, and HTML entities in strings

Special Characters Handler #

pub package Build Status License: MIT

Un framework Dart puissant et flexible pour gérer les caractères spéciaux, les emojis, et les entités HTML dans vos chaînes de caractères. Conçu pour la performance et la simplicité.


📑 Table des Matières #

  1. Caractéristiques
  2. Installation
  3. Utilisation rapide
  4. Fonctionnalités détaillées
  5. Configuration avancée
  6. Performance
  7. Compatibilité
  8. Contribution
  9. Licence

Caractéristiques #

  • 🧹 Nettoyage intelligent : Supprime ou transforme les caractères spéciaux selon vos besoins.
  • 🔄 Entités HTML : Décodage complet et automatique des entités HTML.
  • 😊 Emojis : Détection, extraction et suppression ultra-précise des emojis.
  • 🔗 Slugs : Génération de slugs URL-friendly (propres, minuscules, sans accents).
  • 📝 Markdown : Nettoyage des balises Markdown (gras, liens, code) en préservant le texte.
  • 🎥 YouTube : Extraction d'URLs depuis n'importe quel bloc HTML ou texte brut.
  • 🔠 Unicode : Normalisation Unicode (NFC/NFD) et gestion avancée des accents.
  • Performance : Système de cache LRU intégré pour les textes volumineux.
  • 🎯 Simple : API basée sur des extensions String pour une intégration immédiate.

Installation #

Ajoutez cette ligne à votre fichier pubspec.yaml :

dependencies:
  special_characters_handler: ^1.0.0

Utilisation rapide #

import 'package:special_characters_handler/special_characters_handler.dart';

void main() {
  // Nettoyage avec options par défaut
  String text = "Héllô "world" 😊";
  print(text.cleanSpecialCharacters()); // Output: Hello "world"
  
  // Génération de slug instantanée
  print("Mon Super Article ! 😊".toSlug()); // Output: mon-super-article
  
  // Extraction de vidéos
  var youtubeLinks = "Regarde: https://youtu.be/dQw4w9WgXcQ".extractYouTubeUrls();
}

Fonctionnalités détaillées #

1. Analyse complète de texte #

Idéal pour la validation de formulaires ou le filtrage de contenu.

final result = "Héllô 😊 & world".analyzeText();

print(result.originalLength);
print(result.emojis);            // ['😊']
print(result.htmlEntities);      // ['&']
print(result.accents);           // ['é', 'ô']
print(result.youtubeUrls);       // []
print(result.cleanedText);       // "Hello & world"

2. Niveaux et Types de nettoyage #

Gagnez du temps avec les préréglages intégrés.

// Par niveau d'agressivité
text.cleanSpecialCharacters(options: CleaningLevel.light.toOptions());
text.cleanSpecialCharacters(options: CleaningLevel.medium.toOptions());
text.cleanSpecialCharacters(options: CleaningLevel.aggressive.toOptions());

// Par type de contenu
text.cleanSpecialCharacters(options: CleaningType.htmlOnly.toOptions());
text.cleanSpecialCharacters(options: CleaningType.emojisOnly.toOptions());

3. Nettoyage personnalisé #

Prenez le contrôle total sur chaque aspect du traitement.

final options = CleaningOptions(
  removeHtmlEntities: true,
  removeEmojis: true,
  removeMarkdown: true,
  convertAccents: true,
  removeSpecialChars: true,
  preserveNewlines: false,
);

String custom = text.cleanSpecialCharacters(options: options);

4. Gestion des emojis #

String text = "Hello 😊 World 🌍";

List<String> emojis = text.extractEmojis(); // ['😊', '🌍']
bool hasEmoji = text.hasEmojis();           // true
String noEmojis = text.removeEmojis();      // "Hello World "

5. Support Markdown #

Transformez du contenu riche en texte brut proprement.

String markdown = "# Titre\n**Gras** et [Lien](https://dart.dev)";
String cleaned = markdown.cleanSpecialCharacters(
  options: CleaningOptions(removeMarkdown: true)
);
print(cleaned); // "Titre Gras et Lien"

6. Slugs URL Friendly #

Générez des URLs propres automatiquement.

String title = "Comment créer un Slug en 2024 ! 😊";
print(title.toSlug()); // "comment-creer-un-slug-en-2024"

7. Extraction YouTube #

Supporte tous les formats standards : watch, embed, et short links.

String content = 'Vidéo ici : <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ"></iframe>';
List<String> videos = content.extractYouTubeUrls();

Configuration avancée #

Configurez les limites globales au démarrage de votre application :

const config = SpecialCharactersConfig(
  maxInputLength: 1000000,
  enableLogging: true,
  cacheSize: 1000,
);

Règles de remplacement personnalisées #

final handler = SpecialCharactersHandler();

// Remplacement simple
handler.addReplacementRule(ReplacementRule(pattern: '@', replacement: 'at'));

// Expression régulière
handler.addReplacementRule(ReplacementRule(
  pattern: r'\b\d{4}\b',
  replacement: 'YEAR',
  isRegex: true,
));

Performance #

Le framework est conçu pour être O(n). Il utilise un système de cache LRU (Least Recently Used) qui évite de recalculer le nettoyage pour des chaînes identiques déjà traitées, ce qui est particulièrement efficace dans les interfaces Flutter réactives.


Compatibilité #

Ce package est pure-dart et compatible avec toutes les plateformes :

  • 📱 Android / iOS
  • 💻 Windows / macOS / Linux
  • 🌐 Web / Server-side (Shelf, Dart Frog)

Contribution #

Les contributions sont les bienvenues !

  1. Fork le projet
  2. Créez votre branche (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'feat: add amazing feature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

Licence #

Distribué sous la licence MIT. Voir LICENSE pour plus d'informations.

Auteur #

yayatamba2015@gmail.com

Remerciements #

  • À la communauté Dart/Flutter pour ses retours inspirants.
  • Aux mainteneurs des packages characters, html_unescape et unicode.
2
likes
150
points
105
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A powerful framework for handling special characters, emojis, and HTML entities in strings

Repository (GitHub)
View/report issues

Topics

#string #text-processing #unicode #html #emoji

License

MIT (license)

Dependencies

characters, collection, html_unescape, meta, unicode

More

Packages that depend on special_characters_handler