Was sind Shortcodes?
So genannte Shortcodes werden von einigen Content Management Systemen wie Typemill oder WordPress unterstützt und stellen benannte Ersetzungen im Text oder in Templates dar, beispielsweise entsteht die am Ende des Beitrags zu sehende Author-Bio, durch die Einbettung eines Shortcodes mit der Syntax:
[[author-bio]]
Shortcode für die Einbindung der Autor Biografie
Um Kollisionen mit der Markdown-Sprachsyntax zu vermeiden, verwenden Shortcodes doppelte Klammerpaare statt einfacher eckiger Klammern.
Shortcodes im Template oder im Text verwenden
Das Parsing von Shortcodes kann in CleanCMS ganz individuell eingerichtet werden, aktuell wird das Parsing der Shortcodes durch einen PreFilter wie folgt ausgelöst:
$this->registerPreFilter(function ($rawContent)
{
$shortcode = new ParseRegEx();
$rawContent = $shortcode->parse($rawContent);
return $rawContent;
});
Umwandlung von Shortcodes in Templates durch einen PreFilter
Diese Variante führt dazu, das Shortcodes innerhalb des Templates vor dem Rendering umgewandelt werden - Shortcodes im Beitragstext werden ignoriert.
Sollen hingegen Shortcodes auch im Beitragstext umgewandelt werden können, muss ein PostFilter den Aufruf des Parsers abwickeln, etwa so:
$this->registerPostFilter(function ($rawContent)
{
$shortcode = new ParseRegEx();
$rawContent = $shortcode->parse($rawContent);
return $rawContent;
});
Umwandlung von Shortcodes im Beitragstext durch einen PostFilter
Beispiel: Shortcodes können, neben HTML- und Textblöcken, auch dazu verwendet werden, externe JavaScript Bibliotheken dynamisch zu laden, ohne diese fest im Template einbinden zu müssen. Der Redakteur kann folglich eine individuelle Entscheidung im Text vornehmen (z.B. können in bestimmten Texten JavaScript Charts eingeblendet werden).
Shortcodes anlegen
Shortcodes können bequem in der dazu passenden Datei configs/schortcodes.yaml
als YAML-Struktur gespeichert und zentral gepflegt werden, etwa so:
- Author-Bio:
Shortcode: author-bio
Content: Mein Name ist Oliver Lohse...
- Author-Logo:
Shortcode: author-logo
Content: <img src="/img/oliver-lohse.png">
Shortcode als YAML-Struktur
Da der Shortcode grundsätzlich ein beliebiges RegEx-Pattern sein darf, muss er in der typischen RexEx-Notation verfasst werden.
Tipp: Es ist grundsätzlich auch möglich die voreingestellte Klammersetzung aus dem RegEx-Parser zu lösen und vollständige RegEx-Pattern in der YAML-Datei zuzulassen, dies verbessert die Leistung des Parsers und ermöglicht mehr Kontrolle über den zu ersetztenden Inhalt.
Hintergrund
Ursprünglich war der Shortcode-Parser als kompakter Markdown-Parser konzipiert. In späteren Tests stellte sich jedoch heraus, das er zu leistungsschwach war und sich das Projekt für den bekannten Parser Parsedown
und ParsedownExtra
entschieden hat.
Dennoch hat der Shortcode-Parser genügend Potenzial für andere Aufgaben und übernimmt fortan die Funktion der Shortcodes.

Mein Name ist Oliver Lohse und ich bin seit etwa 41 Jahren als Programmierer in den Sprachen bzw. Markup- und Struktur-Dialekten Java, JEE, JavaScript, React, VAADIN, COBOL, PHP, Python, HTML, CSS, Json, YAML, SQL und XML tätig. In dieser Zeit konnte ich viele Aufgabenstellungen und Alphaprojekte, als Entwickler in der Versicherungswirtschaft, erfolgreich abschließen. Zudem bin Ich Buchautor und Betreiber bekannter Webseiten, im Bereich CMS-Entwicklung und Bildbearbeitung, mit etwa 1,2 Mio Lesern jährlich.