Arbeiten mit Markdown in PHP: Bibliotheken und Werkzeuge
Markdown ist eine leichtgewichtige Auszeichnungssprache, die für die schnelle Textformatierung entwickelt wurde, ohne komplexes HTML schreiben zu müssen. Auf dem Bildungsportal PythonLib stehen wir oft vor der Aufgabe, Markdown-Auszeichnungen in sauberes HTML zu konvertieren, um Artikel, Dokumentationen und Kommentare anzuzeigen. PHP als serverseitige Sprache bietet mehrere ausgereifte Lösungen für diese Aufgabe. In diesem Artikel betrachten wir die drei beliebtesten Bibliotheken, ihre Installation, grundlegende Verwendung und Besonderheiten.
Warum braucht man einen Markdown-Parser in PHP?
Markdown ist praktisch für Autoren von Inhalten, aber Browser verstehen es nicht direkt. Daher muss Markdown auf dem Server in HTML umgewandelt werden. Zusätzliche Vorteile der Verwendung von Bibliotheken:
- Sicherheit: korrekte Verarbeitung von HTML-Tags und Verhinderung von XSS-Angriffen.
- Flexibilität: Unterstützung von Erweiterungen (Tabellen, Fußnoten, mathematische Formeln).
- Leistung: Zwischenspeicherung von Ergebnissen und schnelle Konvertierung.
1. Parsedown – die einfachste und schnellste
Parsedown ist eine Einklass-Bibliothek, die keine Abhängigkeiten benötigt. Sie ist ideal für kleine Projekte und Anfänger.
Installation
composer require erusev/parsedownAnwendungsbeispiel
<?phprequire_once 'vendor/autoload.php';
$Parsedown = new Parsedown();$markdown = "# Überschrift
Dies ist **fetter** Text und *kursiv*.";$html = $Parsedown->text($markdown);echo $html;?>Ergebnis: korrektes HTML mit Tags <h1>, <strong>, <em>. Parsedown maskiert automatisch gefährliche HTML-Tags, wenn sie nicht Teil der Markdown-Auszeichnung sind.
Konfiguration des sicheren Modus
$Parsedown->setSafeMode(true); // Deaktiviert HTML in Markdown2. League/CommonMark – Standardkonformität
Die Bibliothek von The PHP League implementiert den offiziellen CommonMark-Standard. Sie unterstützt Erweiterungen (Tabellen, durchgestrichener Text) und folgt strikt der Spezifikation.
Installation
composer require league/commonmarkGrundlegende Verwendung
<?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 = "| Tabelle | Spalte ||---------|--------|| Zelle 1 | Zelle 2 |";$html = $converter->convert($markdown);echo $html;?>Erweiterte Funktionen
Sie können zusätzliche Erweiterungen einbinden:
use League\\CommonMark\\Extension\\Table\\TableExtension;use League\\CommonMark\\Extension\\Strikethrough\\StrikethroughExtension;
$environment->addExtension(new TableExtension());$environment->addExtension(new StrikethroughExtension());Dies ermöglicht die Verarbeitung von Tabellen und durchgestrichenem Text (~~Text~~).
3. cebe/markdown – eine leichte Alternative
Die Bibliothek cebe/markdown von Carsten Brandt zeichnet sich durch Modularität aus. Sie können nur die benötigten Parser verwenden (z. B. nur für Listen oder Überschriften).
Installation
composer require cebe/markdownBeispiel mit dem MarkdownExtra-Parser
<?phpuse cebe\\markdown\\MarkdownExtra Auch in der Bibliothek
Prometheus-Metriken in Node.js: Bibliothek prom-client
Die C++-Standardbibliothek: Ein vollständiger Überblick über die Funktionen
GuzzleHTTP/Promises für PHP: Komplette Anleitung mit Beispielen
Laravel Passport für PHP: Vollständige Anleitung mit Codebeispielen