clean_js.pl
--help | --version
clean_js.pl
[--in IN
] [--out OUT
] [--encoding_in ENC_IN
] [--encoding_out ENC_OUT
] [--verbose...] [--no_verbose]
--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
".
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:
=.,;:?!|&<>(){}[]/
umgeben, werden entfernt.+-
und einem anderen Zeichen als +-
werden entfernt.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.
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.
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.