sylius-markdown — Markdown aus Daten, nicht aus HTML.
Schickt ein Client Accept: text/markdown, antwortet die Storefront mit Markdown. Das Dokument entsteht aus Entity-Daten über ein Twig-Template, nicht aus gerendertem HTML — sonst stünden Navigation, Footer und Cookie-Banner mit drin. Der Listener greift vor dem Controller, sodass die HTML-Erzeugung ganz entfällt.
Markdown aus HTML zu gewinnen heißt, den Footer mitzuliefern
Der kürzeste Weg zu Markdown ist, die fertige HTML-Seite durch einen Konverter zu schicken. Was dabei herauskommt, enthält die Hauptnavigation, den Footer, den Cookie-Banner und jedes Teaser-Element — also alles, was auf jeder Seite gleich ist und deshalb nichts über die eine Seite aussagt. Hier entsteht das Dokument stattdessen aus Entity-Daten über ein Twig-Template. Was im Markdown steht, ist damit eine Entscheidung des Templates und nicht ein Nebenprodukt des Layouts.
Der Listener greift vor dem Controller. Das ist mehr als eine Optimierung: Würde er auf der Response ansetzen, müsste die Storefront erst die vollständige HTML-Seite rendern, um sie anschließend zu verwerfen — samt aller Twig-Extensions und Datenbank-Abfragen, die nur für Navigation und Randbereiche existieren. So entfällt die HTML-Erzeugung ganz.
Und er liegt unterhalb der Firewall, damit ein Markdown-Request auf /account/… derselben Zugriffskontrolle unterliegt wie der HTML-Request. Ein Listener oberhalb der Firewall wäre genau das, wonach es klingt: ein Accept-Header als Umgehung der Authentifizierung. Content Negotiation ändert die Darstellung einer Ressource, nie die Frage, wer sie sehen darf.
Quellcode & Doku
Composer-Paket
MIT · Sylius 2.0+ · PHP 8.2+
composer require koh/sylius-markdown
Gebaut, getestet und unter MIT veröffentlicht. Die öffentliche Distribution über Packagist wird vorbereitet (coming soon).
Teil der Familie
MIT
Dieses Paket gehört zu koh/sylius-agent-ready — siebzehn Bundles, die einen Sylius-Shop für KI-Agenten benutzbar machen. Jedes ist einzeln einsetzbar.