![]() |
Willkommen, Gast ( Anmelden | Registrierung )
![]() |
![]()
Beitrag
#1
|
|
____________________ ![]() Gruppe: Admin Beiträge: 1.220 Mitglied seit: 20.10.2001 Mitglieds-Nr.: 3 ![]() |
Hi,
wie das so ist. Man bastelt jahrelang an einer Site und die wächst und wächst und irgendwann weiß man nicht mehr, welche Klasse aus dem Stylesheet man noch benutzt und welche nicht - gleiches gilt für Bilder aus dem "zentralen" Grafiken Ordner ... Ich benutze TopStyle 3.11 und dort gibt es einen Sitereport, der zumindest für die CSS Klassen das gewünschte erledigt. Das Programm findet unbenutzte Klassen (orphan classes). Die Sache hat nur einen Haken: benutzt man multiple Klassen (class="button rechts klein") erkennt TopStyle das (noch!) nicht :-( Also leider nicht zu gebrauchen. Kennt jemand ein Tool, welches genau das erledigt? CSS Datei nehmen, gucken wo die innerhalb der Site überall verlinkt ist und die nicht benutzten Klassen anzeigen? Ähnliches sollte ja auch für Bilder funktionieren: Bildordner auswählen, und Site durchsuchen, welche der im Ordner enthaltenen Bilder/Dateien nicht irgendwo in der Site benutzt wird. Das würde mich gewaltig nach vorne bringen *g* Viele Grüße Andreas |
|
|
![]() |
![]()
Beitrag
#2
|
|
Weiss zuviel!! ![]() Gruppe: Mods Beiträge: 668 Mitglied seit: 19.04.2002 Wohnort: Grimmen Mitglieds-Nr.: 385 ![]() |
Hallo,
nun hat mich doch ein wenig der Ehrgeiz gepackt. Habe nun noch etwas verändert und denke, dass es so eigentlich funktionieren könnte. Also, Andreas, probier's mal mit dieser Version. Bei mir scheint es jedenfalls erfolgreich zu sein. Ich kann es ja dann mal kommentieren, wenn es denn sinn machen sollte. QUELLTEXT #!c:/perl/bin/perl # finde nicht verwendete bilder use strict; use warnings; use File::Find; my $home; my $picture_subdir; my $picture_dir; my $picture; my @picture_files; my @html_files; my $html; my $scan_result; my $not_used=0; # hier das verzeichnis eintragen, wo die html-dateien sind $home = 'c:/home/ingo/html/interpro_neu/schulen'; # hier das verzeichnis der bilder eintragen $picture_dir = 'c:/home/ingo/html/interpro_neu/bilder'; find(\&find_picture, $picture_dir); @picture_files = sort @picture_files; print 1+$#picture_files." Bilder in $picture_dir gefunden!\nDavon werden nicht verwendet:\n"; find(\&find_html, $home); foreach $picture (@picture_files) { foreach $html (@html_files) { $scan_result = &scan($html, $picture); if ($scan_result) { last; } } unless ($scan_result) { print "$picture \n"; $not_used ++; } } print "Insgesamt werden $not_used Bilder nicht verwendet!\n"; sub find_picture { my $akt_file = $File::Find::name; push @picture_files,$akt_file if ($akt_file =~ /\.(jpg|gif|png)$/i); } sub find_html { my $akt_file = $File::Find::name; push @html_files,$akt_file if ($akt_file =~ /\..?htm.?$/i); } sub del_common { my ($html, $picture_dir) = @_; my @html_dir; @html_dir = split('/', $html); foreach (@html_dir) { $picture_dir =~ s/$_\///i; } return $picture_dir; } sub scan { my ($html,$picture)=@_; my $html_content; my $found; undef $/; $picture = del_common($html, $picture); open (IN,"< $html"); $html_content=<IN>; close IN; $found = $html_content =~ /$picture/; return $found; } ACHTUNG! ACHTUNG! CSS-Dateien nicht vergessen! Auch dort können Bilder verlinkt sein, die in den HTML-Dateien nicht mehr erscheinen. Der Beitrag wurde von i.b.g bearbeitet: 19.02.2005 - 16:10 |
|
|
![]() ![]() |
![]() |
Vereinfachte Darstellung | Aktuelles Datum: 30.04.2025 - 17:21 |