clean_js.pl


Übersicht

clean_js.pl --help | --version

clean_js.pl [--in IN] [--out OUT] [--encoding_in ENC_IN] [--encoding_out ENC_OUT] [--verbose...] [--no_verbose]

Optionen

--version

Gibt kurze Hinweise zum Programm und die Version aus.

--help

Gibt eine kurze Hilfe aus.

--in IN

IN ist der Dateipfad der Eingabedatei (Javascript) oder "-". "-" steht für die Standard-Eingabe und ist die Voreinstellung.

--out OUT

IN ist der Dateipfad der verkleinerten Ausgabedatei (Javascript) oder "-". "-" steht für die Standard-Ausgabe und ist die Voreinstellung.

--encoding_in ENC_IN

Zeichenkodierung der Eingabe (Javascript). Vorgabe ist "utf-8".

--encoding_out ENC_OUT

Zeichenkodierung der Ausgabe (Javascript). Vorgabe ist "utf-8".

Beschreibung

Das Perl-Skript clean_js.pl entfernt Kommentare und Leerzeichen aus einer Javascript-Datei. Die Javascript-Datei wird zeilenweise verarbeitet.

Die Hilfsfunktion reduce_code entfernt aus einer Javascript-Code-Zeichenkette unnötige Leerzeichen:

Aus jeder Zeile werden zunächst alle Zeichen von der Zeichenfolge // an entfernt. Die weitere Verarbeitung unterscheidet sich danach, ob die Zeile ein Anführungszeichen enthält oder nicht. Wenn die Zeile kein Anführungszeichen enthält, wird sie durch die Hilfsfunktion reduce_code verkürzt. Wenn die Zeile ein Anführungszeichen enthält, werden die Teilzeichenketten vor dem ersten und nach dem letzten Anführungszeichen durch die Hilfsfunktion reduce_code verkürzt.

Wenn die gekürzte Zeile leer ist, wird die Verarbeitung mit der nächsten Zeile fortgesetzt. Andernfalls wird die gekürzte Zeile ausgegeben, aber noch nicht das Zeilenende-Zeichen. Wenn die aktuelle Ausgabezeile mehr als 60 Zeichen enhält oder die gekürzte Eingabezeile mit einer schließenden geschweiften Klammer endet, wird ein Zeilenende-Zeichen ausgegeben. Wenn andernfalls die gekürzte Eingabezeile nicht mit einem der Zeichen []<>(){,:;!? endet, wird ein Leerzeichen ausgegeben.

Die letzte Ausgabezeile wird mit einem Zeilenende-Zeichen abgeschlossen.

Software-Voraussetzungen

Das Skript setzt voraus, daß Perl verfügbar ist. Es wird eine Version ab 5.10 angenommen.

Die Befehlszeilen-Argumente werden mit Hilfe des Moduls Herbaer::Readargs gelesen.

Bugs

Das Programm ignoriert Zeichenketten-Konstanten. Auch wenn "//" innerhalb einer Zeichenketten-Konstanten steht, werden die Schrägstriche und alle folgenden Zeichen entfernt.

Auch innerhalb von Zeichenketten werden aufeinander folgende Leerzeichen durch einzelne Leerzeichen ersetzt.

Eine existierende Datei unter dem Pfad OUT (s. --out) wird ohne Warnung überschrieben.

Die Vorgaben der Optionen können nicht durch eine Konfigurationsdatei geändert werden.