Signatur
Beschreibung
CommonMark\Render\HTML ist eine Funktion der CommonMark-Erweiterung für PHP (PECL-Paket cmark) und konvertiert ein zuvor geparstes CommonMark-Dokument in einen HTML-String. Sie bildet zusammen mit CommonMark\Parse das typische Zwei-Schritte-Muster: zuerst Parsen, dann Rendern.
Der Rückgabewert ist ein vollständiges HTML-Fragment (kein vollständiges <html>-Dokument), das direkt in eine Webseite eingebettet werden kann. Das Rendern folgt der CommonMark-Spezifikation und erzeugt standardkonformes HTML.
Die Funktion ist besonders dann sinnvoll, wenn man den Dokumentenbaum (AST) zwischen Parsen und Rendern noch manipulieren oder traversieren möchte – für reine Konvertierung ohne AST-Zugriff bietet sich alternativ CommonMark\Convert an, das beide Schritte kombiniert.
Wichtig: Die Ausgabe stammt direkt aus dem CommonMark-Parser; dennoch sollten Inhalte, die von nicht vertrauenswürdigen Benutzern kommen, zusätzlich mit einem HTML-Sanitizer geprüft werden, um XSS-Angriffe zu verhindern.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $document Pflicht | CommonMark\Node\Document | Ein geparstertes CommonMark-Dokument, wie es z. B. von CommonMark\Parse zurückgegeben wird. |
Rückgabewert
Beispiele
Einfache Markdown-zu-HTML-Konvertierung in zwei Schritten
<?php
// Schritt 1: Markdown parsen
$document = CommonMark\Parse("# Hallo Welt\n\nDies ist ein **Beispiel** mit CommonMark.");
// Schritt 2: Als HTML rendern
$html = CommonMark\Render\HTML($document);
echo $html;
AST manipulieren vor dem Rendern
<?php
// Markdown parsen
$document = CommonMark\Parse("Hallo Welt\n\nZweiter Absatz.");
// AST traversieren und erstes Paragraph-Kind ausgeben
foreach ($document->children() as $node) {
if ($node instanceof CommonMark\Node\Paragraph) {
echo "Gefundener Paragraph-Knoten\n";
break;
}
}
// Danach als HTML rendern
$html = CommonMark\Render\HTML($document);
echo $html;
// Wichtig · Fallstricke
Sicherheitshinweis: Die von CommonMark generierte HTML-Ausgabe kann potenziell gefährliche Inhalte enthalten, wenn der Eingabe-Markdown von nicht vertrauenswürdigen Quellen stammt (z. B. Nutzer-Eingaben). CommonMark erlaubt in bestimmten Konfigurationen eingebettetes Raw-HTML. Es wird empfohlen, die Ausgabe mit einem dedizierten HTML-Sanitizer (z. B. HTMLPurifier) zu bereinigen, bevor sie an den Browser ausgegeben wird.
Die Funktion ist Teil des PECL-Pakets cmark und muss separat installiert werden (pecl install cmark). Sie steht nicht im PHP-Core zur Verfügung. Für eine reine Konvertierung ohne AST-Zugriff ist CommonMark\Convert oft die einfachere Wahl.