Verarbeitung und Parsing von Markdown in PHP: Bibliotheken und Beispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Markdown in PHP: Überblick über Bibliotheken und Werkzeuge

\n\n

Markdown ist eine leichtgewichtige Auszeichnungssprache, die es ermöglicht, formatierten Text mit einer einfachen Syntax zu erstellen. In PHP gibt es mehrere ausgereifte und zuverlässige Bibliotheken zur Verarbeitung von Markdown. In diesem Artikel betrachten wir die drei beliebtesten Werkzeuge: Parsedown, PHP-Markdown und League/CommonMark.

\n\n

1. Parsedown – Leichter und schneller Parser

\n\n

Parsedown ist eine der beliebtesten Bibliotheken für die Arbeit mit Markdown in PHP. Sie benötigt keine externen Abhängigkeiten, unterstützt alle grundlegenden Auszeichnungselemente und arbeitet sehr schnell.

\n\n

Installation

\n
composer require erusev/parsedown
\n\n

Grundlegende Verwendung

\n
<?php\nrequire 'vendor/autoload.php';\n\n$Parsedown = new Parsedown();\n\n$markdown = <<<MARKDOWN\n# Überschrift erster Ebene\n\nDies ist **fetter Text** und *kursiver Text*.\n\n- Listenelement 1\n- Listenelement 2\n\n[Link zu PythonLib](https://pythonlib.ru)\nMARKDOWN;\n\necho $Parsedown->text($markdown);\n?>
\n\n

Das Ergebnis dieses Codes ist korrektes HTML mit Überschriften, Listen und Links.

\n\n

Zusätzliche Funktionen

\n
    \n
  • Unterstützung des sicheren Modus (Maskierung von HTML-Tags)
  • \n
  • Arbeit mit verschachtelten Listen und Tabellen
  • \n
  • Konfiguration über die Methoden setBreaksEnabled() und setMarkupEscaped()
  • \n
\n\n

2. PHP-Markdown – Die klassische Lösung

\n\n

PHP-Markdown ist die ursprüngliche Implementierung des Markdown-Parsers von Michel Fortin, basierend auf der Perl-Version von John Gruber. Diese Bibliothek folgt strikt der Markdown-Spezifikation.

\n\n

Installation

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

Anwendungsbeispiel

\n
<?php\nrequire 'vendor/autoload.php';\n\nuse Michelf\\Markdown;\n\n$markdown = <<<MARKDOWN\n## Überschrift zweiter Ebene\n\n> Dies ist ein Zitat.\n> Es kann mehrzeilig sein.\n\n1. Erster Punkt einer nummerierten Liste\n2. Zweiter Punkt\n\n`Inline-Code` und Codeblock:\n\n    <?php\n    echo "Hallo, Welt!";\n    ?>\nMARKDOWN;\n\n$html = Markdown::defaultTransform($markdown);\necho $html;\n?>
\n\n

Besonderheiten

\n
    \n
  • Unterstützung erweiterter Syntax über MarkdownExtra
  • \n
  • Automatische Konvertierung von Links und E-Mail-Adressen
  • \n
  • Möglichkeit, HTML in der Ausgabe zu deaktivieren
  • \n
\n\n

3. League/CommonMark – Standardisierte Implementierung

\n\n

League/CommonMark ist eine Bibliothek, die den offiziellen CommonMark-Standard implementiert. Sie bietet maximale Kompatibilität mit anderen Parsern und unterstützt Erweiterungen.

\n\n

Installation

\n
composer require league/commonmark
\n\n

Beispiel mit Erweiterungen

\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\CommonMark\\Environment\\Environment;\nuse League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;\nuse League\\CommonMark\\MarkdownConverter;\n\n// Umgebung mit Basiserweiterungen erstellen\n$environment = new Environment();\n$environment->addExtension(new CommonMarkCoreExtension());\n\n$converter = new MarkdownConverter($environment);\n\n$markdown = <<<MARKDOWN\n| Tabelle | Spalte 1 | Spalte 2 |\n|---------|----------|----------|\n| Zeile 1 | Wert     | Wert     |\n| Zeile 2 | Wert     | Wert     |\n\n~~Durchgestrichener Text~~ und ==markierter Text== (GFM).\nMARKDOWN;\n\necho $converter->convert($markdown)->getContent();\n?>
\n\n

Zusätzliche Erweiterungen

\n
    \n
  • Table – Unterstützung für Tabellen
  • \n
  • Strikethrough – durchgestrichener Text
  • \n
  • TaskList – Kontrollkästchen
  • \n
  • Autolink – automatische Links
  • \n
\n\n

Vergleich der Bibliotheken

\n\n

Empfehlungen