Travailler avec Markdown en PHP : aperçu des bibliothèques et outils
\n\nMarkdown est un langage de balisage léger qui permet de créer du texte formaté avec une syntaxe simple. En PHP, il existe plusieurs bibliothèques matures et fiables pour traiter Markdown. Dans cet article, nous examinerons les trois outils les plus populaires : Parsedown, PHP-Markdown et League/CommonMark.
\n\n1. Parsedown — un analyseur léger et rapide
\n\nParsedown est l'une des bibliothèques les plus populaires pour travailler avec Markdown en PHP. Elle ne nécessite aucune dépendance externe, prend en charge tous les éléments de balisage de base et fonctionne très rapidement.
\n\nInstallation
\ncomposer require erusev/parsedown\n\nUtilisation de base
\n<?php\nrequire 'vendor/autoload.php';\n\n$Parsedown = new Parsedown();\n\n$markdown = <<<MARKDOWN\n# Titre de premier niveau\n\nCeci est du **texte en gras** et de l'*italique*.\n\n- Élément de liste 1\n- Élément de liste 2\n\n[Lien vers PythonLib](https://pythonlib.ru)\nMARKDOWN;\n\necho $Parsedown->text($markdown);\n?>\n\nLe résultat de ce code est un HTML correct avec des titres, des listes et des liens.
\n\nFonctionnalités supplémentaires
\n- \n
- Prise en charge du mode sécurisé (échappement des balises HTML) \n
- Gestion des listes imbriquées et des tableaux \n
- Configuration via les méthodes
setBreaksEnabled()etsetMarkupEscaped()\n
2. PHP-Markdown — la solution classique
\n\nPHP-Markdown est l'implémentation originale de l'analyseur Markdown par Michel Fortin, basée sur la version Perl de John Gruber. Cette bibliothèque suit strictement la spécification Markdown.
\n\nInstallation
\ncomposer require michelf/php-markdown\n\nExemple d'utilisation
\n<?php\nrequire 'vendor/autoload.php';\n\nuse Michelf\\Markdown;\n\n$markdown = <<<MARKDOWN\n## Titre de deuxième niveau\n\n> Ceci est une citation.\n> Elle peut être sur plusieurs lignes.\n\n1. Premier élément de liste numérotée\n2. Deuxième élément\n\n`code en ligne` et bloc de code :\n\n <?php\n echo "Hello, World!";\n ?>\nMARKDOWN;\n\n$html = Markdown::defaultTransform($markdown);\necho $html;\n?>\n\nCaractéristiques
\n- \n
- Prise en charge de la syntaxe étendue via MarkdownExtra \n
- Conversion automatique des liens et des adresses email \n
- Possibilité de désactiver le HTML dans la sortie \n
3. League/CommonMark — implémentation standardisée
\n\nLeague/CommonMark est une bibliothèque implémentant le standard officiel CommonMark. Elle assure une compatibilité maximale avec les autres analyseurs et prend en charge les extensions.
\n\nInstallation
\ncomposer require league/commonmark\n\nExemple avec extensions
\n<?php\nrequire 'vendor/autoload.php';\n\nuse League\\CommonMark\\Environment\\Environment;\nuse League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;\nuse League\\CommonMark\\MarkdownConverter;\n\n// Création de l'environnement avec les extensions de base\n$environment = new Environment();\n$environment->addExtension(new CommonMarkCoreExtension());\n\n$converter = new MarkdownConverter($environment);\n\n$markdown = <<<MARKDOWN\n| Tableau | Colonne 1 | Colonne 2 |\n|---------|-----------|-----------|\n| Ligne 1 | Valeur | Valeur |\n| Ligne 2 | Valeur | Valeur |\n\n~~Texte barré~~ et ==texte surligné== (GFM).\nMARKDOWN;\n\necho $converter->convert($markdown)->getContent();\n?>\n\nExtensions supplémentaires
\n- \n
- Table — prise en charge des tableaux \n
- Strikethrough — texte barré \n
- TaskList — cases à cocher \n
- Autolink — liens automatiques \n
Comparaison des bibliothèques
\n\nAussi dans la bibliothèque
Travailler avec YAML en C++ : la bibliothèque yaml-cpp pour l'analyse et la sérialisation
Intégration des métriques Prometheus dans les applications C++ : la bibliothèque prometheus-cpp
Client Redis en Rust : guide complet de la bibliothèque redis-rs