Benutzer:Jah/Rhic

aus Wikipedia, der freien Enzyklopädie
Rhic-bsp1.png

Mit den folgenden Skripten kann man wie auf dem nebenstehenden Bild gezeigt den Artikeltext einfärben, so dass sichtbar wird, wer der Autor einer Textstelle ist. Die Perl-Skripte laufen serverseitig (wobei als Server auch der lokale Rechner dienen kann), rhic.js muss in monobook.js eingebunden werden.

Getestet habe ich bislang nur mit Firefox. Dass das auch mit anderen Browsern ohne Modifikationen funktioniert, ist wohl eher unwahrscheinlich, weil die Artikelseiten mit Javascript ziemlich stark umgebaut werden.

Um die Skripte herunterzuladen, bitte auf "Quellcode" klicken und die Skripte dann unter dem Namen speichern, der links neben "Quellcode" steht. Die Perl-Skripte habe ich mit einer .js-Endung im Seitennamen hochgeladen, weil sie so nur von mir änderbar sind. Programme frei editierbar zu lassen, wäre vielleicht etwas gefährlich.

Für Unicode wird nicht auf bestehende Bibliotheken zurückgegriffen, weil ich nicht weiß, was da alles auf diversen Plattformen zur Verfügung steht, und ob es schnell genug wäre. Man braucht noch die Datei UnicodeData.txt, die man im selben Verzeichnis wie "unicode" speichern muss. Wenn man dann ./unicode aufruft, wird neben anderen Dateien, die man ignorieren kann, eine Datei "unicodeAttributes.h" erzeugt. Diese wird von "ppDump" benötigt.

"ppDump" steht für "preprocess Dump", d.h. ein Dump, den man sich von dumps.wikimedia.org herunterladen kann, muss erst einmal vorverarbeitet werden, bevor er die Versionsgeschichten-Informationen schnell zur Verfügung stellen kann, denn die Original-Dumps sind so komprimiert, dass man sie nur von vorne bis hinten entpacken kann, was alleine schon Stunden dauert. Zusätzlich extrahiert "ppDump" auch noch die Informationen, wer wann welche Textschnipsel beigetragen hat.

Man benötigt die Dumps mit den vollständigen Versionsgeschichten ("All pages with complete edit history"). Die als .7z komprimierten Versionen enthalten die selben Daten wie die als .bz2 komprimierten, sind aber erheblich kürzer. Man kann sie mit einem der in 7-zip aufgeführten Programme entpacken.

Unter Linux würde man etwa Folgendes eingeben, um die Dump-Auswertung zu starten:

7z e -so dewiki-20061130-pages-meta-history.xml.7z | ./ppDump de wikipedia

Es wird ein Unterverzeichnis "data" angelegt, in dem einige Dateien gespeichert werden, die insgesamt z.Z. ca. 10GB Platz benötigen. Je nach Leistung des Rechnes benötigt dieser Schritt einige Stunden bis ca. einen Tag (so z.B. auf meinem Uralt-Atholon-2400). Es gibt keine Fortschrittsanzeige, aber die Dateien wachsen mehr oder weniger linear, und "dewikipedia.seq" hat für den 20061130er Dump eine Endgröße von 3671402016 Bytes.

Dann muss man noch "histInfo" als CGI-Programm auf einem Webserver installieren (unter Linux mit Apache ist das bei mir das Verzeichnis "/var/www/cgi-bin"). "histInfo" erwartet das "data"-Unterverzeichnis mit den von "ppDump" erzeugten Daten im CGI-Verzeichnis. Man kann aber die Pfade in den Skripten auch einfach anpassen.

Danach muss man den Javascript-Code aus "rhic.js" entweder ins eigene monobook.js kopieren oder von dort aus einbinden, etwa so:

document.write('<script src="http://de.wikipedia.org/w/index.php?title=Benutzer:Jah/rhic.js&action=raw" type="text/javascript" charset="utf-8"></script>');

Schließlich muss man noch angeben, in welchen Farben die Autoren dargestellt werden sollen. Dazu bitte aus meiner monobook.css-Datei die Zeilen, die mit "a.rhic" beginnen, in die eigene monobook.css-Datei kopieren und evtl. die Farbwerte anpassen. (Dieser Schritt wird möglicherweise in Zukunft entfallen und die Farbgebung in Javascript festgelegt werden.)

Das Ergebnis ist dann: Es erscheinen wie oben auf dem Bild zu erkennen drei neue Links über dem Artikeltext:

  • Wenn man auf "Au" klickt, wird der Text nach Autoren eingefärbt.
  • Wenn man auf "Ti" klickt, wird der Text nach der Bearbeitungszeit eingefärbt.
  • Ein Klick auf "N" setzt die Seite auf den Ursprungszustand zurück.

Bei langen Seiten kann die Berechnung schon mal eine halbe Minute dauern. Möglicherweise beschwert sich der Webbrower dann. Im Firefox kann man diese Warnungen unterdrücken, indem man "about:config" in die Adresszeile eingibt und dann den Wert "dom.max_script_run_time" hochsetzt. Das betrifft dann natürlich auch alle anderen Seiten, auf denen man surft.