Arbeiten mit Markdown in PHP: Überblick über Bibliotheken und Werkzeuge
\n\nMarkdown 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\n1. Parsedown – Leichter und schneller Parser
\n\nParsedown 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\nInstallation
\ncomposer require erusev/parsedown\n\nGrundlegende 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\nDas Ergebnis dieses Codes ist korrektes HTML mit Überschriften, Listen und Links.
\n\nZusä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()undsetMarkupEscaped()\n
2. PHP-Markdown – Die klassische Lösung
\n\nPHP-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\nInstallation
\ncomposer require michelf/php-markdown\n\nAnwendungsbeispiel
\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\nBesonderheiten
\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
3. League/CommonMark – Standardisierte Implementierung
\n\nLeague/CommonMark ist eine Bibliothek, die den offiziellen CommonMark-Standard implementiert. Sie bietet maximale Kompatibilität mit anderen Parsern und unterstützt Erweiterungen.
\n\nInstallation
\ncomposer require league/commonmark\n\nBeispiel 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\nZusätzliche Erweiterungen
\n- \n
- Table – Unterstützung für Tabellen \n
- Strikethrough – durchgestrichener Text \n
- TaskList – Kontrollkästchen \n
- Autolink – automatische Links \n
Vergleich der Bibliotheken
\n\nAuch in der Bibliothek
Arbeit mit XML in JavaScript (Node.js): Bibliotheken und Beispiele
Arbeit mit XML in Swift (iOS/macOS): Foundation und SwiftXML
JWT-Token in Go (Golang): Bibliothek golang-jwt und Anwendungsbeispiele
Konfiguration von Go-Anwendungen (Golang): Bibliotheken und Werkzeuge