Michael Schröpl: Sourcecode formatieren

Beitrag lesen

Kennt jemand ein Programm, das meinen (unformatierten)Sourcecode nach bestimmten Kriterien einrueckt, damit er danach uebersichtlicher wird(fuer HTML bzw. Jscript) ?

Das Problem ist, daß sich unter "übersichtlich" jeder etwas Anderes vorstellen wird. Sollte es also fertige Formatierer geben, dann optimieren diese wahrscheinlich eher *ihre* Ziele als Deines.

Andererseits ist HTML als fast reine Klammer-Sprache (zu den meisten tags gibt es schließende Äquivalente) sehr gut zu parsen.
Es kann also nicht so schwer sein, ein Perl-Programm zu schreiben, welches
1. den Datei-Inhalt komplett in eine Stríng-Variable einliest und sequentiell bearbeitet,
2. bei Auffinden eines tags das passende Gegenstück am Ende des Dokuments findet,
3. den Mittelteil herausschneidet und die Analysefunktion mit diesem Parameterwert rekursiv aufruft und
4. beim Auffinden eines nicht mehr zerteilbaren Inhalts diesen in die Zieldatei ausgibt, wobei die Rekursionstiefe gleich der gewünschten Einrückung wäre (in Deinem Fall). Vor und nach diesem rekursiven Aufruf werden das öffnende und das schließende Tag ausgegeben.

Der Trick besteht darin, dem tag anzusehen, ob es ein Gegenstück gibt oder nicht. Wahrscheinlich würde ich eine Negativliste statisch definieren, in der dann Sonderfälle wie <BR> usw. aufgelistet werden; ist das gefundene tag kein solcher Sonderfall, dann muß es das Gegenstück finden.
Ganz nebenbei dient dieses Skript als rudimentärer HTML-Syntaxchecker, denn es wird fehlende schließende Klammern zuverlässig erkennen.