Bestehende HTML Dateien auf "lokal" umbiegen

05/01/2010 - 12:42 von Andreas Wittmann | Report spam
Hallo NG!

Ich habe zahlreiche Dokumentationen in Form von HTML-Dateien in
zahlreichen Unterverzeichnissen liegen. Gelesen werden sie lokal,
d.h. ohne Webserver dazwischen. Manche dieser Dateien haben
Referenzen/Links welche sich auf lokale/relative Pfade beziehen jedoch
haben viele auch absolute Referenzen mit externen Links drin.

Gibt es fertige Programme welche diese absoluten Links nachtràglich
löschen/ausblenden/kenntlich machen? Ich verwende WGet wo man dies
einstellen kann, jedoch möchte ich bestehende Dokumentationen auch
noch "geradebiegen" damit nicht jedesmal eine Internetverbidung
aufgebaut wird sobald so ein Link dargestellt wird (Meistens
Image-Referenzen) - Eigenentwicklungen mit awk, sed, ... möchte ich
mir eher sparen.

Gegoogled habe ich und obwohl das ein recht hàufiges Problem ist habe
ich keine wirklich guten Lösungen gefunden. Vielleicht wisst ihr da
eine Antwort.

Ich verwende Debian Linux Version 5.0.3.
Danke!

lg
Andreas
 

Lesen sie die antworten

#1 Bernd Petrovitsch
05/01/2010 - 15:45 | Warnen spam
Andreas Wittmann wrote:
[...]
Ich habe zahlreiche Dokumentationen in Form von HTML-Dateien in
zahlreichen Unterverzeichnissen liegen. Gelesen werden sie lokal,
d.h. ohne Webserver dazwischen. Manche dieser Dateien haben
Referenzen/Links welche sich auf lokale/relative Pfade beziehen jedoch
haben viele auch absolute Referenzen mit externen Links drin.

Gibt es fertige Programme welche diese absoluten Links nachtràglich
löschen/ausblenden/kenntlich machen? Ich verwende WGet wo man dies
einstellen kann, jedoch möchte ich bestehende Dokumentationen auch
noch "geradebiegen" damit nicht jedesmal eine Internetverbidung
aufgebaut wird sobald so ein Link dargestellt wird (Meistens
Image-Referenzen) - Eigenentwicklungen mit awk, sed, ... möchte ich
mir eher sparen.


Dann nimm' perl;-)

Gegoogled habe ich und obwohl das ein recht hàufiges Problem ist habe
ich keine wirklich guten Lösungen gefunden. Vielleicht wisst ihr da


Weil es ein ekliges Problem ist: Wenn ich so ein "allgemeines" Tool bau,
dann *muß* das (zumindest) unterscheiden können,
- ob ein Link so bleiben soll, wie er ist (trivialerweise alle relativen,
aber vielleicht auch externe, z.B. auf die Homepage von $DOKU - und die
sind allgemein nicht erkennbar)
- und solchen, die umzuschreiben sind.
Und da stellt sich die Frage, welche Links wie umzuschreiben sind. Das
könnten
- mehrere Regeln sein, weil die Links inkonsistent erzeugt worden sind
- dann könnten Groß/Kleinschreibung zu reparieren sein,
- u.U. Encoding "fixen".
Dann wird man das öfters aufrufen, weil es erfahrungsgemàß irgendwo einen
kaputten Link gibt, den man erst nach 3 Wochen bemerkt. Dann muß man da
wieder reingreifen (ohne die 1. Änderungen zu verlieren, etc.).

Und ein (leidlich) *einfach* zu verwendendes Tool, daß obiges zu
pràsentiert, daß es (fast) jeder sinnvoll benutzen kann, ist aufwendig. Wer
es nicht glaubt, möge eine Spezifikation dafür schreiben, die vollstàndig
und widerspruchsfrei ist und trotzdem alle Features (und welche konkret)
kann.

Und wenn man `perl` kann (oder `sed` und/oder `awk` und/oder sonstige
Scriptsprachen) ist es jedenfalls einfacher mit einem primitiven Script
anzufangen, daß man im Laufe der Zeit verbessert (wenn man wieder was neues
entdeckt hat).
Und sei es nur ein Shellscript a la
- snip -
rm -rf "$DST"
cp -ar "$SRC" "$DST"
find "$DST" -type f -print0 | xargs -0r perl -wipe 's/.../.../'
- snip -
Und das perl-Script ganz hinten wàchst dann kontinuierlich im Laufe der
Zeit.
<disclaimer>Ja, GNU-`sed` hat auch "-i", aber es wird mbMn nicht beim reinen
s/// bleiben und dann wird's mit `sed` eklig.</disclaimer>

Bernd
"Designed for Windows" ist das Äquivalent zu Entwicklungsprinzipien
der russischen Armee: es muß so gut sein, daß es ein Bauerntrampel
nur schwer mutwillig kaputt kriegt. - Arnim Sommer

Ähnliche fragen