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 }}
Code
Dabei rendert Twig die Zeile fehlerhaft und macht daraus:
Autor:CMSWorkbench
Code
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 }}
Code
Daraus entsteht dann die korrekte Schreibweise:
Autor: CMSWorkbench
Code
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.
if (isset($this->positions[2][$this->position][0])) {
$text = rtrim($text);
}
Tauschen Sie die alte Zeile 174 gegen die folgende Zeile 174 aus (und auch nur diese eine Zeile).
if (isset($this->positions[2][$this->position][0]) && ($this->options['whitespace_trim'] === $this->positions[2][$this->position][0])) {
$text = rtrim($text);
}
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.