Logo

Das White Space Problem in Twig Templates für Pico CMS


Das Pico CMS mit Twig hat ein Leerzeichen-Problem, denn Leerzeichen (Whitespaces) vor Templatevariablen werden von der internen Template Engine Twig verschluckt

Magnetisches Smart Watch Schnellladegerät

Magnetisches Smart Watch Schnellladegerät - ⚡ Multifunktionales 2 in 1 Schnellladegerät ⚡ Dank seines kompakten Designs ist es kompatibel mit iWatch 7, 6, 5, 4, 3, 2, 1 einschließlich 38mm 40mm 42mm 44mm Version und kompatibel mit iPhone 13, 12, 11, Max, XR, XS, X, 7, 8 und iPad Serie ⚡ Das 2 in 1 Ladekabel kann Ihre Smartwatch und Ihr Telefon gleichzeitig aufladen. Hinweis

kaufen...
Automad Bludit Coast GetSimple GRAV Handlebars Java PHP Pico Smarty Templating Typemill WonderCMS WordPress yamlCMS

Leerzeichen Fehler im Twig

Wollten Sie im Pico CMS bzw. im Twig beispielsweise einen Meta-Footer erzeugen, dann mussten Sie dies wie folgt tun:

Autor: {{ meta.author }}

Dabei rendert Twig die Zeile fehlerhaft und macht daraus:

Autor:CMSWorkbench

Twig verschluckt dabei das führende Leerzeichen vor dem Meta-Attribut author. Alternativ wurde dies mittels join-Filter im Template-Design gelöst.

{{ ['Autor: ', meta.author]|join }}

Daraus entsteht dann die korrekte Schreibweise:

Autor: CMSWorkbench

Die Lösung des Whitespace-Problems mittels join ist jedoch auf Dauer viel zu umständlich, daher habe ich den Fehler gesucht und auch wie folgt behoben.

Die Lösung

Das Problem der falschen Leerzeichen (Leerzeichen werden verschluckt) in Pico bzw. Twig, liegt in der Datei vendor/twig/twig/lib/Twig/Lexer.php. Suchen Sie dort nach der folgenden Passage, die sich in meiner Version in der Zeile 174 befindet.

174  if (isset($this->positions[2][$this->position][0])) {
175      $text = rtrim($text);
176  }

Tauschen Sie die alte Zeile 174 gegen die folgende Zeile 174 aus (und auch nur diese eine Zeile).

174  if (isset($this->positions[2][$this->position][0]) && ($this->options['whitespace_trim'] === $this->positions[2][$this->position][0])) {
175      $text = rtrim($text);
176  }

Das Leerzeichen-Problem ist schnell behoben. Sie sollten die Korrektur unbedingt im Pico CMS bzw. Twig Symphony vornehmen, da Sie sonst das Problem mittels join-Filter umschiffen müssten - das ist auf Dauer zu umständlich. Allerdings erhalten Sie dadurch ein anderes Problem, denn Leerzeichen werden nun unverändert weiter gegeben und dies könnte Ihr SEO negativ beeinflussen, da Titel plötzlich länger als erwartet werden.

Passend:


CSS Formatfehler PRE Tag in Automad CMS selbst beheben

Das CMS Automad formatiert den PRE-Tag in dieser Version falsch. Korrigieren Sie dies mit wenigen CSS-Statements, um formatieten Text nutzen zu können.

Schlagworte mit CSS Styles im Automad CMS umbrechen lassen

Korrigieren Sie den defekten CSS Style im populären CMS Automad mit wenigen Codezeilen, um beliebte Schlagwörter und Tags korrekt anzeigen zu können.

Fehlerausgaben in der Smarty Template Engine unterdrücken

So verhindern Sie die Ausgabe von Warnungen und Meldungen in der Template Engine Smarty. Besonder hilfreich während der Entwicklung in kleinen Projekten.

WonderCMS Server Fehler Abbruch bei Klick auf Links

In der htaccess der Standardinstallation des WonderCMS befindet sich in einigen Fällen ein korrigierbarer Fehler, der allerdings zu einem Abbruch führt.


Meta: Instagram CMSWorkbench.de GIMP-Handbuch.de Kontakt Impressum Datenschutz