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

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 : bibliothèques et outils



Markdown est un langage de balisage léger conçu pour formater rapidement du texte sans avoir à écrire du HTML complexe. Sur le portail éducatif PythonLib, nous sommes souvent confrontés à la tâche de convertir le balisage Markdown en HTML propre pour afficher des articles, de la documentation et des commentaires. PHP, en tant que langage serveur, propose plusieurs solutions matures pour cette tâche. Dans cet article, nous examinerons les trois bibliothèques les plus populaires, leur installation, leur utilisation de base et leurs particularités.



Pourquoi un analyseur Markdown en PHP ?

Markdown est pratique pour les auteurs de contenu, mais les navigateurs ne le comprennent pas directement. Il est donc nécessaire de convertir Markdown en HTML côté serveur. Avantages supplémentaires de l'utilisation des bibliothèques :

  • Sécurité : traitement correct des balises HTML et prévention des attaques XSS.
  • Flexibilité : prise en charge des extensions (tableaux, notes de bas de page, formules mathématiques).
  • Performance : mise en cache des résultats et conversion rapide.


1. Parsedown — le plus simple et le plus rapide

Parsedown est une bibliothèque à classe unique qui ne nécessite aucune dépendance. Elle est idéale pour les petits projets et les débutants.



Installation

composer require erusev/parsedown


Exemple d'utilisation

<?phprequire_once 'vendor/autoload.php';

$Parsedown = new Parsedown();$markdown = "# Titre

Ceci est du texte **gras** et *italique*.";$html = $Parsedown->text($markdown);echo $html;?>

Résultat : HTML correct avec les balises <h1>, <strong>, <em>. Parsedown échappe automatiquement les balises HTML dangereuses si elles ne font pas partie du balisage Markdown.



Configuration du mode sécurisé

$Parsedown->setSafeMode(true); // Désactive le HTML dans Markdown


2. League/CommonMark — conformité à la norme

La bibliothèque de The PHP League implémente la norme officielle CommonMark. Elle prend en charge les extensions (tableaux, texte barré) et suit strictement la spécification.



Installation

composer require league/commonmark


Utilisation de base

<?phpuse League\\CommonMark\\Environment\\Environment;use League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;use League\\CommonMark\\MarkdownConverter;

$environment = new Environment();$environment->addExtension(new CommonMarkCoreExtension());$converter = new MarkdownConverter($environment);

$markdown = "| Tableau | Colonne ||---------|---------|| Cellule 1 | Cellule 2 |";$html = $converter->convert($markdown);echo $html;?>


Fonctionnalités avancées

Vous pouvez ajouter des extensions supplémentaires :

use League\\CommonMark\\Extension\\Table\\TableExtension;use League\\CommonMark\\Extension\\Strikethrough\\StrikethroughExtension;

$environment->addExtension(new TableExtension());$environment->addExtension(new StrikethroughExtension());

Cela permet de traiter les tableaux et le texte barré (~~texte~~).



3. cebe/markdown — une alternative légère

La bibliothèque cebe/markdown de Carsten Brandt se distingue par sa modularité. Vous pouvez utiliser uniquement les analyseurs nécessaires (par exemple, uniquement pour les listes ou les titres).



Installation

composer require cebe/markdown


Exemple avec l'analyseur MarkdownExtra

<?phpuse cebe\\markdown\\MarkdownExtra                    

Recommendations