$CMS_TRIM(level:LEVEL, char:CHAR, regexp:REGEXP)$

I'm a big fan of CMS_TRIM, especially level 4 helps to minifiy CSS and JavaScript files to reduce overhead. So it would be very helpful to have an extra option for a regexp which could clear all commentet lines for example.

Ich bin ein großer Fan von CMS_TRIM, vorallem Level 4 hilft auf dem Produktivsystem z.B. CSS und JavaScript Dateien zu einem kleinen "Klumpen" zu pressen um unnötigen Traffic und Overhead zu vermeiden. Da wäre es besonders schön, wenn man der Funktion noch einen String als RegExp übergeben könnte, was zusätzlich noch weggeschnitten werden soll - ich denke da z.B. an auskommentiertes.

7 Comments
sglock
I'm new here

Sie können das CSS per CMS_SET zwischenspeichern und anschließend die Kommentare replacen. (Man muss allerdings darauf achten, dass Browserhacks nicht ebenfalls entfernt werden.) Hier ein Beispiel (ohne Gewähr):

$CMS_SET(css)$$CMS_TRIM(level:4)$

/* Your CSS */

$CMS_END_TRIM$$CMS_END_SET$

$CMS_VALUE(css.toString().replaceAll("(\\/\\[^\\*][\\d\\D]*?\\*\\/)",""))$

der_sk
I'm new here

Wir haben das anders "gelöst". Sämtliche CSS- und JS-Dateiinhalte haben wir in Formattemplates hinterlegt. In den entsprechenden CSS- und JS-Dateien in der Medienverwaltung binden wir dann alles benötigte ein - so kann man auch für jedes Element (falls nötig) eigene Einstellungen auf Templates aufteilen und so nach Bedarf pro Site zusammenstellen.

So kommt jeweils eine CSS-, JS- und CSS-IEHacks raus (Ladezeitoptimierung). Außerdem wird, wie bei Ihnen auch, alles per CMS_TRIM gestaucht. Kommentare werden per Suchen und Ersetzen (in den Templates) durch CMS-Kommentare ($-- --$) ersetzt.

Wofür wir noch keine schöne Lösung gefunden haben ist für das Caching... da die Daten nächtlich neugeschrieben werden funktioniert das If-Modified-Since leider nicht. Und auf den Dateinamen haben wir auch nicht wirklich Einfluss.

Eine CSS- und JS-Minifier-Funktion wäre aber wirklich wünschenswert...

robin_kump
I'm new here

Da gibt es eine Möglichkeit: Wir haben den YUI Compressor in ein Modul gegossen. Der Minifier läuft dann per Render-Script über die JavaScripts und StyleSheets.

der_sk
I'm new here

Ah, den kannte ich noch nicht - bzw. mir war nicht bewusst, dass es den in Java gibt. Dürfen Sie das Modul rausgeben?

robin_kump
I'm new here

Leider nicht, da es kein eigenständiges Modul ist. Lässt sich aber einfach selber erstellen. Neben der benötigten Bibliothek sind auch die Sourcen im Download bei Yahoo enthalten. In der Datei YUICompressor.java steht bei Version 2.4.7 in den Zeilen 129 - 181 (JavaScriptCompressor) und 185 - 197 (CssCompressor) der zu adaptierende Code.

der_sk
I'm new here

Vielen Dank, das werden wir uns auch mal ansehen Smiley Happy

kohlbrecher
Crownpeak employee
Crownpeak employee

Hallo Jannis,

vielen Dank für deine Idee zur Verbesserung von FirstSpirit. Es ist uns wichtig, aus den Erfahrungen unserer Kunden und Partner zu lernen. Aus diesem Grund schätzen wir Feedback und freuen uns über jede Anregung.

Wir haben das Thema noch einmal evaluiert, haben aber keine Pläne, es in absehbarer Zukunft zu bearbeiten. Daher können wir deinen Feature Request zum aktuellen Zeitpunkt leider nicht berücksichtigen.

Detaillierte Informationen bezüglich des Auswahlprozesses der Requests, die wir umsetzen, haben wir in unserer Features Policy zusammengefasst.

Viele Grüße

Jan