Traitement et analyse Markdown en PHP : bibliothèques et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec Markdown en PHP : aperçu des bibliothèques et outils

\n\n

Markdown 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\n

1. Parsedown — un analyseur léger et rapide

\n\n

Parsedown 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\n

Installation

\n
composer require erusev/parsedown
\n\n

Utilisation 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\n

Le résultat de ce code est un HTML correct avec des titres, des listes et des liens.

\n\n

Fonctionnalité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() et setMarkupEscaped()
  • \n
\n\n

2. PHP-Markdown — la solution classique

\n\n

PHP-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\n

Installation

\n
composer require michelf/php-markdown
\n\n

Exemple 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\n

Caracté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
\n\n

3. League/CommonMark — implémentation standardisée

\n\n

League/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\n

Installation

\n
composer require league/commonmark
\n\n

Exemple 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\n

Extensions supplémentaires

\n
    \n
  • Table — prise en charge des tableaux
  • \n
  • Strikethrough — texte barré
  • \n
  • TaskList — cases à cocher
  • \n
  • Autolink — liens automatiques
  • \n
\n\n

Comparaison des bibliothèques

\n\n

Recommendations