Mediawiki und der PDF-Export mittels Collection

Der PDF Export einer Wikiseite, einer kompletten Kategorie oder gar des gesamten Wikis gestaltet sich unter Umständen recht schwierig. Es gibt zwar jede Menge PDF Tools für das Mediawiki, jedoch sind die meisten entweder sehr spärlich in ihrer Funktionalität oder benötigen umfangreiche Installationsorgien von zusätzlichen Tools auf dem Webserver oder aber sie werden gar nicht mehr gepflegt und sind unter Umständen auf einem aktuellen Wiki (derzeit 1.20.2) nicht mehr einsetzbar.

Im ganzen Wirrwarr an PDF Tools für das Mediawiki sticht jedoch eine Erweiterung hervor. Die Funktionalität von Collection ist in meinem Fall genau das was ich benötige. Bei der Integration in unser Unternehmenswiki habe ich auch mehrere Möglichkeiten, von einfach bis mittelschwer.

Die Erweiterung Collection kann sehr einfach installiert werden, wenn man das Wiki auf einem Webserver betreibt der zum einen auch einen Internetzugang besitzt und zum anderen auch nicht stark Frequentiert ist. Ich behaupte jetzt einfach mal: Das eine schließt das andere aus. Habe ich ein Unternehmenswiki dann hält sich die Zahl der Benutzer meistens in Grenzen. Dann ist es unter Umständen jedoch nicht mehr möglich den Webserver einen uneingeschränkten Zugang zum Internet zu bieten. Brauch er ja auch nicht, da das Wiki nur im Unternehmen eingesetzt werden soll.

Habe ich allerdings ein öffentliches Wiki dann hat dieses zwar Zugang zum Internet, allerdings ist dann nicht mehr gewährleistet das die Zahl der Benutzer im Rahmen bleibt. Warum das jetzt wichtig ist? Ganz einfach. Um PDFs aus dem Wiki mittels Collection zu erstellen benötigt man einen Renderserver. Die Entwickler der Extension Collection stellen diesen Renderserver auf ihren eigenen Servern als Dienst zur Verfügung. Allerdings nur für "low traffic sites". Nun kann jeder für sich selber entscheiden ob sein Wiki dazu gehört oder nicht. 

Die Installation von Collection ist im einfachsten Fall schnell über die Kommandozeile erledigt. Wenn man auf seinem System Git zur Verfügung hat, so kann man die Extension über folgende Befehle installieren und auch gleich noch die LocalSettings.php entsprechend bearbeiten:

cd $wikiroot/extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Collection.git
echo "require_once( \"\$IP/extensions/Collection/Collection.php\" );" >> ../LocalSettings.php

Hat man keinen Shellzugang zum System bzw. kein Git zur Verfügung, muss man die Extension entsprehcend mit einem FTP Programm auf den Server packen und die LocalSettings.php mit einem Texteditor eigener Wahl bearbeiten.

Theoretisch hat man nun im Wiki im Menü zusätzliche Menüpunkte bzgl. des Exports nach PDF. Praktisch dürften diese jedoch noch Fehler produzieren wenn in der LocalSettings.php die Variable $wgScriptPath leer ist. Hierzu ist noch die Datei Collection.body.php zu bearbeiten.

// Diese Zeile wird auskommentiert
'base_url' => wfExpandUrl( $wgScriptPath, PROTO_CURRENT ),  

// und gegen diese ersetzt
'base_url' => "http://wiki.liersch.info", 

Jetzt kann man auch praktisch sein Wiki in PDF Dateien exportieren und sich sogar Collectionen zusammenstellen oder jede Seite einzeln in ein PDF verpacken. Zu diesem Zeitpunkt werden die PDFs noch auf den Servern von Pediapress gerendert. Wie bereits Eingangs erwähnt funktioniert dies nur wenn der Webserver auch Zugang zum Internet hat. Um diese Funktion auch "offline" bzw. in einem Unternehmensnetzwerk einsetzen zu können sind weitere Schritte notwendig. Hierzu muss ein eigener Renderserver aufgesetzt werden, welcher auch auf dem localen Webserver eingerichtet werden kann. Hierfür ist dann allerdings zwingend ein Shellzugang mit Rootprivilegien erforderlich da zusätzliche Software installiert werden muss. Mehr dazu jedoch in diesem Beitrag.