Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt jeden Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten. Diesmal stellen wir den textbasierten WWW-Browser w3m vor.
Große und schwerfällige Browser für das World Wide Web (WWW) kennt man zur Genüge. Als leichtgewichtige und schnelle Alternative dazu hat sich im Linuxbereich lynxetabliert. Nur leider ist das Betrachten vieler Webseiten mit lynx nicht immer ein Vergnügen – wenn sie nämlich Framesoder Tabellen enthalten. Diese Lücke schließt w3m, ein Projekt des Japaners Akinori Ito.
Fernost-Import
Die w3m-Homepage (http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/) hält zur Zeit zwei Versionen von w3m bereit: die Entwicklerversion 0.1.6 und die stabile Version 0.1.4. Natürlich lässt eine Null vor dem Komma nicht unbedingt auf absturz- und fehlerfreies Softwarevergnügen schließen, aber im praktischen Einsatz zeigen sich kaum Macken.
Wir holen uns die 0.1.4er Ausgabe und kompilieren sie selbst, da bei diesem Schritt einige Voreinstellungen getroffen werden können. Auf der Heft-CD finden Sie das Archiv im Verzeichnis ./LinuxUser/w3m/.
Interaktiv
Die Grundkonfiguration des w3m hängt nämlich davon ab, wie die Antworten auf ein paar Fragen des -Skripts ausfallen. Doch bevor es soweit ist, muss zuerst das Archiv mit den C-Quelltexten entpackt werden:
tar xzf /mnt/cdrom/LinuxUser/w3m/w3m-0.1.4.tar.gz cd w3m ./configure
configure stellt nun die folgenden Fragen, die natürlich auch abweichend von den unten vorgeschlagenen Werten beantwortet werden können. Mit den angegebenen Antworten (<Return> steht für den einfachen Druck auf die Enter-Taste) sollte sich w3m jedoch problemlos auf den meisten Distributionen kompilieren lassen.
Which directory do you want to put the binary? (default: /usr/local/bin) <Return> Which directory do you want to put the support binary files? (default: /usr/local/lib/w3m) <Return> Which directory do you want to put the helpfile? (default: /usr/local/lib/w3m) <Return> Which language do you prefer? 1 - Japanese (charset ISO-2022-JP, EUC-JP, Shift_JIS) 2 - English (charset US_ASCII, ISO-8859-1, etc.) [1]? 2 <Return> Do you want to use Lynx-like key binding? [n]? <Return> Let's do some configurations. Choose config option among the list. 1 - Baby model (no color, no menu, no mouse, no cookie, no SSL) 2 - Little model (color, menu, no mouse, no cookie, no SSL) 3 - Mouse model (color, menu, mouse, no cookie, no SSL) 4 - Cookie model (color, menu, mouse, cookie, no SSL) 5 - Monster model (with everything; you need openSSL library) 6 - Customize Which? 2 <Return> Input your favorite editor program. (Default: /bin/vi) /usr/bin/mcedit <Return> Input your favorite mailer program. (Default: /bin/mail) <Return> Input your favorite external browser program. (Default: /usr/bin/netscape) <Return> Input your favorite C-compiler. (Default: gcc) <Return> Input your favorite C flags. (Default: -O) <Return> ... Which terminal library do you want to use? (default: -lncurses) <Return> Input additional LD flags other than listed above, if any: : <Return>
Anstelle von /usr/bin/mcedit, dem Editor des Midnight Commanders, kann natürlich auch ein anderer Editor stehen. Wichtig ist, dass er mit seinem vollen Pfadnamen angegeben wird. Diesen ermitteln Sie mit which editorname, beispielsweise which joe.
Nachdem alles eingestellt ist, wird jetzt die eigentliche Kompilierung mit makegestartet und anschließend das Programm mit make install in den /usr/local-Verzeichnisast installiert.
make su - (root-Passwort eingeben) make install exit
Pager oder Browser?
Der Autor von w3m nennt sein Programm einen Pager, der auch HTML-Dokumente darstellt. Tatsächlich kann man w3m als Alternative zu less oder more für ganz normale Textdateien verwenden, da auch das Lesen von der Standardeingabe möglich ist.
Für den ersten Test lassen wir w3m die Homepage der Bildbearbeitungssuite GIMP darstellen:
w3m http://www.gimp.org/
Bei dieser Seite wird eine Tabelle verwendet, um die Linkleiste vom Inhalt abzusetzen. Abbildung 1 zeigt die Darstellung in w3m. Ein Beispiel, bei dem Frames zum Einsatz kommen, ist in Abbildung 2 zu sehen.
Wie navigiert man nun zu weiteren Seiten? Der Cursor lässt sich mit den Pfeiltasten frei bewegen. Befindet er sich über einem Link, so wird dieser unterstrichen dargestellt, und es reicht das Drücken der Return-Taste, um zu diesem zu verzweigen. Auch über Texteingabefeldern muss Return gedrückt werden, bevor dort etwas eingetragen werden kann.
Mit B geht man eine Ebene zurück. Die komplette Tastenbelegung zeigt w3m mit der Taste H an. Dabei ist wichtig, dass Tastenkommandos case-sensitiv behandelt werden, es werden also Groß- und Kleinbuchstaben unterschieden.
Feineinstellung
Wem die Farben für die verschiedenen Elemente (Links, Grafiken, Texteingabefelder) nicht gefallen, sollte mit der Taste o die Optionenseite aufrufen (Abbildung 3). Hier lassen sich viele weitere Einstellungen ändern, etwa die automatische Darstellung von Frames einschalten (Frames werden dadurch in ihrer tatsächlichen Anordnung gezeigt und nicht auf einzelne Seiten verteilt), die Namen der Proxy-Serverangeben oder das Anzeigen der Link-URL(unten in der Statuszeile), über der sich der Cursor befindet, steuern. Verlässt man die Optionen über einen der OK-Buttons, so werden die neuen Einstellungen in der Datei ~/.w3m/config gespeichert.
w3m als Filter
Wie schon angesprochen, kann w3m auch als Filter arbeiten, also HTML-Daten von der Standardeingabe lesen. So wird beispielsweise mit dem Midnight Commander das Lesen von HTML-Dokumenten, die sich in Archivdateien (.tar.gz, .zip etc.) befinden, möglich. Dazu ist folgender Eintrag in der Datei ~/.mc/ext nötig:
regex/\.html?$
Open=if [ x$DISPLAY = x ]; then lynx %p; else ( %p &); fi
View=%view{ascii} cat "%f" | w3m -T text/html -dump
Icon=html.xpm
Dieser Eintrag existiert normalerweise schon, verwendet aber in der View-Zeile einen lynx-Aufruf. Da w3m beim Lesen der Standardeingabe nicht selbst feststellen kann, dass es sich um HTML-Daten handelt, wird ihm diese Information über die Option -T text/html gegeben. Die Option -dump sorgt dafür, dass w3m keine weitere Interaktion mit dem Benutzer erfordert, sondern die Seitendarstellung direkt auf die Standardausgabe bringt.
Angesichts der niedrigen Versionsnummer darf man in Zukunft noch einiges von diesem Mini-Browser erwarten – w3m zeigt, dass auch im WWW-Bereich die Textkonsole noch lange nicht zum alten Eisen gehört.
Glossar
-
lynx
-
Textbasierter WWW-Browser, der bereits seit fünf Jahren unter der GPLsteht und stetig weiter entwickelt wird.
-
GPL
-
Die GNU General Public License. Eine Software-Lizenz, die es erlaubt, ein Programm weiter zu geben unter der Voraussetzung, dass der Quelltext dabei immer erhältlich bleibt. Ebenfalls erlaubt und ausdrücklich erwünscht ist es, verbesserte Versionen der Software zu erstellen und wieder zu veröffentlichen. Linux selbst steht ebenfalls unter der GPL.
-
Frames
-
(engl.: Rahmen) Aufteilung einer Webseite in mehrere Unterseiten, die vertikal und/oder horizontal angeordnet sind. Frames werden meistens dazu verwendet, eine globale Navigationsleiste ständig präsent zu halten.
-
configure
-
Das Skript dient zum automatischen Auswerten von Eigenschaften des Systems, auf dem ein Quelltext kompiliert werden soll. So findet configure selbständig heraus, welcher C-Compiler installiert ist usw. Die so gefundenen Eigenschaften werden u. a. ins Makefile eingetragen.
-
SSL
-
Secure Socket Layer, ein Mechanismus, der es erlaubt, Daten verschlüsselt über eine Netzwerkverbindung zu übertragen. Eine freie SSL-Implementation ist openSSL.
-
make
-
Werkzeug, das die Kompilierung von Quelltexten steuert und dabei Abhängigkeiten zwischen einzelnen Programm-Modulen berücksichtigt. Die Konfigurationsdatei von make ist das Makefile.
-
Pager
-
Programm zum seitenweisen Anzeigen einer Datei.
-
HTML
-
HyperText Markup Language, die Seitenbeschreibungssprache des World Wide Web.
-
Proxy-Server
-
Ein als Zwischenspeicher agierender Server, der die Zugriffe auf Web-Seiten beschleunigt. Bei einem Zugriff prüft der Proxy, ob er eine Kopie der Seite bereits vorrätig hält und überträgt diese ggf., anstatt die Seite vom tatsächlichen Server anzufordern. Dabei beachtet der Proxy auch, wie alt die Kopie ist.
-
URL
-
Uniform Resource Locator, die eindeutige Positionsangabe einer Ressource im Netz.







