Code Monkey home page Code Monkey logo

zeit-offline's Introduction

zeit-offline

Ein XSLT-basierter Konverter für die Volltext-Umwandlung von zeit.de-Artikeln von XML in HTML.

Einführung

Wie auf zeit.de beschrieben, gibt es für jeden ZEIT-Artikel eine Volltext(!)-XML-Version, die durch Veränderung der URL erreicht werden kann. Diese XML-Version ist zwar nicht menschen- aber maschinenlesbar und kann durch Umwandlung wieder in eine menschen- bzw. browserlesbares Format gebracht werden. Dieses Projekt bietet die technischen Hilfsmittel zur Umwandlung.

Technischer Hintergrund

ZEIT Online bietet offiziell einen Großteil seines Text-Angebots im Volltext über das XML-Interface unter xml.zeit.de. Die XML-Version einer Seite kann erreicht werden, in dem in der URL das "https://www" durch "http://xml" ersetzt wird (Beispiel siehe unten). Der klassische Weg, um XML in ein anderes Format umzuwandeln ist eine XSL Transformation, kurz XSLT. Kernstück dieses Projekt ist das XSLT "zeitoffline.xslt", mit dem Artikel von XML in HTML umgewandelt und dann im Browser gelesen werden können. Die Umwandlung ist absichtlich einfach gehalten und bietet die Möglichkeit, weiter verfeinert zu werden.

Warum?

Das Stylesheet war ein Urlaubsprojekt, weil… es geht. Auslöser war das Experiment, mit einem Windows 3.11 Rechner zeit.de darzustellen. Der Jahrzehnte alte Browser war nicht mehr in der Lage, mit dem modernen SSL und CSS/Javascript auf der Seite umzugehen. Mit Hilfe von zeitoffline konnten die Artikel so umgewandelt werden, dass das Anzeigen eines Artikels wieder möglich ist, wie dieser Screenshot zeigt:

Windows 3.11 Screenshot

Die umgewandelte Version sieht derzeit zwar nicht gut aus, bietet aber viele Vorteile: Sie lädt schnell - auch in alten Browsern, ist komplett tracking- und ablenkungsfrei und kann die Grundlage für eine nach eigenen Wünschen zugeschnittene barrierefreie Version sein.

Beispiel mit xsltproc

xsltproc ist ein weit verbreiteter XSLT-Prozessor, der XSLT auf XML anwenden kann. Nehmen wir den Beispiel-Artikel:

https://www.zeit.de/2009/29/Pooh

und wandeln die URL um in:

http://xml.zeit.de/2009/29/Pooh

Die XML-Variante muss nun runtergeladen und dann mit xlstproc umgewandelt werden. Die Ergebnis-Datei artikel.html kann direkt im Browser betrachtet werden:

$ wget http://xml.zeit.de/2009/29/Pooh -O artikel.xml
$ xsltproc zeitoffline.xslt artikel.xml > artikel.html

Nutzung von render.sh

Einfacher geht es mit dem Beispiel-Script render.sh, das die Schritte automatisch durchführt, wenn die notwendigen Programme vorhanden sind:

$ ./render.sh https://www.zeit.de/2009/29/Pooh

Mindestvoraussetzungen

Theoretisch kann eine Vielzahl von Software zum Einsatz kommen. Getestet wurde die Umwandlung jedoch mit xsltproc. Das Script "render.sh" benötigt zudem curl oder wget und wurde unter Linux und MacOS getestet.

TODO

  • Da die Artikel auf zeit.de nicht völlig homogen formatiert sind, gibt es immer wieder Artikel, deren Struktur aktuell nicht perfekt vom Stylesheet behandelt werden.
  • Das Design könnte durchaus mit CSS etwas attraktiver gemacht werden und sich besser an verschiedene Bildschirmgrößen anpassen.
  • Für das Lesen eines Artikels unter Windows 3.11 war es zusätzlich nötig, von UTF8 nach Latin umzuwandeln. Dies könnte per Option ins render.sh integriert werden. Beispiel: iconv -f UTF-8 -t ISO-8859-1 -c artikel.html > latin.htm
  • Die Integration in ein Browser-Plugin wäre praktisch, muss ggfs. aber rechtlich geprüft werden.

Warum "zeitoffline"

Der Name verweist darauf, dass die Umwandlung der Artikel nicht automatisiert online erfolgt, sondern ausschließlich auf dem eigenen Rechner. Die Artikelfotos werden übrigens nicht gespeichert, sondern beim Betrachten eines Artikels von einer Original-Quelle nachgeladen.

Lizenz

Das Projekt steht unter GNU GPL, siehe LICENSE.

zeit-offline's People

Contributors

leitmedium avatar bauersman avatar katrinleinweber avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.