Zum Inhalt springen

Wikipedia:Archiv/PDF-Generator

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 6. März 2004 um 17:00 Uhr durch Mathias Schindler (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Diese Seite dient der Ideensammlung und der Koordination rund um das Thema "automatisierte Umwandlung von Wikipedia-Artikeln in PDF-Dateien". Die Diskussion entstand aus der Frage heraus, ob man die WikiReader-Hefte auch ohne (größere) manuelle Bearbeitung erstellen könnte.


Prototyp

Online PDF-Erstellung: http://swalter.homelinux.org/wiki2pdf/

Achtung: das Skript ist immer noch im beta-Stadium und läuft momentan auf meinem Rechner.

ChangeLog

Implementiert:

  • Überschriften
  • Fett und kursiv
  • Wiki-Links und externe Links
  • Doppelte Anführungszeichen
  • Listen mit Sternchen (eine Stufe)
  • Inhaltsverzeichnis
  • Lizenzgeschichten

Fehlt noch:

  • Bilder
  • Tabellen
  • fast alle HTML-Tags
  • Aufzählungen

Nutzung und Drumherum

Der Quellcode gibt's bei http://swalter.homelinux.org/wiki2pdf/source.php

Warum verwende ich pdflatex und nicht latex - dvips - ps2pdf? Weil pdflatex den Zeilenumbruch mitten im Link zulässt, das normale latex nicht.

Stw 14:33, 6. Mär 2004 (CET)

Wünsche

Modularisierung

Es wäre klasse, wenn das Script eine Sammlung von TeX-Dateien ausspuckt, die zu einem Dokument gehören. Modularisierung in der Form vielleicht, dass ein Hauptdokument die nötigen Definitionen enthält und der / die bearbeiteten Artikel als einzelne Dateien dort einfach eingebunden werden. Kann auch alles in einer Datei stehen ... das sollte aber eigentlich für TeX das selbe sein. Harko 18:10, 5. Mär 2004 (CET)
Da hast du recht, wenn man mehrere Artikel in einem TeX-Dokument haben will, muss das natürlich modularisiert werden. Man könnte also einfach den TeX-Header im Skript weglassen, und eine globale .tex-Datei schreiben, die dann die anderen \include{}t. -- Stw 18:35, 5. Mär 2004 (CET)
Wenn das Script die globale Datei aus einer vorhandenen (vielleicht mit der vielsagenden Endung .tpl) erzeugt, also diese tpl-Datei einliest und daraus das globale Dokument erzeugt, dann kann sich der erfahrene TeXaner dransetzen und ein schickes Layout für den resultierenden Reader basteln ... solange er einige grundlegende Regeln beachtet (eben die Sachen, die das Script voraussetzt). Auf diese Weise kann auch die Sache mit der Lizenz gelöst werden, die liegt einfach als Datei immer irgendwo rum und wird zwingend immer in die Globaldatei eingebaut. Harko 18:52, 5. Mär 2004 (CET)

Aufruf von pdftex aus dem Script

Und zwar so oft, bis auch der letzte Seitenumbruch, die letzte Fußnote und das letzte Verzeichnis erzeugt sind. LaTeX braucht für einige Aufgaben mehr als einen Durchlauf. Harko 18:52, 5. Mär 2004 (CET)

Automatische Wahl von Dateinamen

Das Script sollte vielleicht automatisch auch Dateinamen vergeben, es soll ja auf einem Webserver laufen und konkurrierend mehrere Anfragen bearbeiten können. Entsprechend sollte das Script auch das Alter vorhandener Dateien in seinem Ausgabe-Verzeichnis überprüfen und bei sehr alten Dateien eine Löschung (oder zumindest ein detach) vornehmen. Harko 18:52, 5. Mär 2004 (CET)
Ich bin mir noch nicht sicher, wie das Skript überhaupt aufgerufen werden soll. Z.B. so:
wiki2latex.py de "Dokument" "Artikel1" "Artikel2" "Artikel3"
Vielleicht wird das ja auch ein kleines Bundle von Scripten, die sich gegenseitig aufrufen?
artikelsammlung.py "$RANDOM.txt"
das erstellt mit der Selektion aus einer Auswahlliste von verfügbaren Artikeln, die ein Nutzer tätigte eine Datei mit den zu sammelnden Artikel-URLs und ruft auf:
wiki2latex.py "$RANDOM" "$RANDOM-von-artikelsammlung.txt"
Ich gehe mal stillschweigend von einer Anwendung aus, die ein nettes HTML-Frondend haben soll, damit sich der geneigte Nutzer auch seine Zusammenstellung bauen kann, die ihm dann als PDF auf die Kiste flattert (deshalb sollte dieses Script auch gleich die LaTeX-Aufrufe gestalten). Gleichzeitig kann man mit artikelsammlung.txt auch eine langsam fortschreitende Sammlung druckwürdiger Texte erzeugen (die dann eben nicht per Zusammenklick erzeugt wird, sondern mit 'nem Texteditor). ... Aber kann sein, dass ich da noch nicht gar so ausgereifte Gedanken habe. Harko 20:39, 5. Mär 2004 (CET)
und es werden Dokument/Artikel1-<timestamp>.tex etc. generiert. Von SQL-Datenbanken hab ich keine Ahnung, vielleicht weisst du, Harko, wie man das am besten damit verknüpft. Das Skript muss ja irgendwie die Inhalte (Wiki-Source, Bilder) abholen, der Umweg über http-Abfragen ist nicht wirklich elegant. -- Stw 20:00, 5. Mär 2004 (CET)
Der ist nicht elegant, birgt aber den riesen Vorteil, dass er von jedem Rechner aus gangbar ist, oder bietet WikiPedia einen direkten Zugang zur Datenbank? Die Tatsache, dass es von jedem Rechner aus genutzt werden kann, schützt das Projekt davor, der Missgunst fremder Menschen zum Opfer zu fallen. Wenn natürlich direkter Datenbankzugang ermöglicht wird, dann ist das was anderes, in diesem Falle sind ja auch ganz andere Steuerinformationen (vielleicht) verfügbar. Harko 20:39, 5. Mär 2004 (CET)

Zerosyntax

Wie aufwändig ist es mit python, eine Seite wie Wikipedia:WikiReader/Islam auszulesen, alle dort liegenden Links zu erfassen und in der dort liegenden Reihenfolge die verlinkten Artikel in ein gemeinsames PDF zu legen? -- Presroi 23:11, 5. Mär 2004 (CET)

Am Ende also:

wiki2latex2pdf Wikipedia:Wikireader/Islam


Probleme

Bilder

Leider kann ich mit meinem Skript die Bilder nicht direkt herunterladen, da Wikipedia den User-Agent von Python sperrt. Hat jemand eine Lösung zu diesem Problem?

Für diesen Fall sollte man imho legitim den user-Agent ändern dürfen, sofern das geht. alternativ mit python ein wget aufrufen oder ein links, das das bild dumped. Alles ziemlich krude, oder? -- Presroi 22:12, 5. Mär 2004 (CET)
Ich verwende nun die API von http://pywikipediabot.sf.net , damit wird der User-Agent geändert. Trotzdem muss ich dann noch den HTML-Code nach dem IMG-Tag durchsuchen, was ziemlich unelegant ist. -- Stw 23:06, 5. Mär 2004 (CET)

Feedback PDF-Erstellung

erster Versuch war mit GNU und Softwarepatent, gab eine Fehlermeldung. zweiter und dritter Versuch klappt hervorragend. -- Presroi 14:46, 6. Mär 2004 (CET)

Weiterleitung funktioniert noch nicht. Du musst also "GNU-Projekt" eingeben. Stw 14:58, 6. Mär 2004 (CET)
aah, sorry. mein fehler. Auf jeden Fall ist es eine richtig geniale sache. Danke! -- Presroi 14:59, 6. Mär 2004 (CET)
Weiterleitung funktioniert jetzt. -- Stw 15:58, 6. Mär 2004 (CET)
Merci, Wo steht gerade der timeout des scriptes und wie kann man ihn verhindern? -- Presroi 16:00, 6. Mär 2004 (CET)