Tim Tepaße: Atom (nicht RSS) in HTML einfügen?

Beitrag lesen

Hallo Eay,

Mein Weblog postet mir auch eine xml-datei. http://www.eayz.net/atom.xml
Jetzt hab ich alles mögliche von Site-Syndication gelesen und würde gerne
einfach die Überschriften bzw. die ersten Wörter meiner Posts auf meiner
Startseite anzeigen lassen. Wenn jemand versteht was ich meine, wäre Hilfe
echt nett.

Ich fasse mal kurz zusammen:
Du hast einen Account samt Weblog bei blogger.com. blogger.com greift über
FTP auf Deinen Webspace zu (wäre mir schon unangenehm, aber ich war ja selber
mal bei Blogger.com) und stellt dort die neuen Seiten hinein. Diese Seiten
sind die Blog-Index-Seite, in Deinem Fall /blog.html, der Atom-Newsfeed
/atom.xml (Nicht RSS) und die archivierten Seiten samt Archiv-Index.

Du willst jetzt auf einer anderen Seite die Titel der Blog-Posts aufführen,
wahrscheinlich als Linkliste im Sinne von »Die letzten zehn Posts« oder so
ähnlich. Du hast nur Blogger.com und keine Möglichkeiten zu serverseitigen
Programmen in PHP, Perl oder ähnlichen.

Sagen wir so: Es geht nicht oder nur sehr schwer.

Blogger.com gestaltet meines Wissens immer nur die oben angegebenen Seiten,
eigene Seiten bezieht er nicht in seine Update-Liste ein. Denn in der
Blogger-Syntax wäre es ja recht einfach, ein Template dafür zu gestalten,
mal so aus der Hand geschüttelt so vielleicht:

<h3>Die letzten Postings</li>
<ul>
<Blogger>
  <li>
    <BlogItemTitle>
      <BlogItemURL><a href="<$BlogItemURL$>"></BlogItemURL><$BlogItemTitle$></a>
    </BlogItemTitle>
  </li>
</Blogger>
</ul>

Andere Weblogsoftware kann das bequem, dieses Hinzufügen von Templates
und Dateien in den Aktualisierungszyklus. Das Problem für Dich ist nur,
daß diese anderen Programme meist nur als CGI-Skript auf dem Server laufen.
Und diese Möglichkeit hast Du nicht - sonst hätte ich Dir schon längst zum
ultraflexiblen Movable Type geraten.

Die nächste Möglichkeit ist die, die Du und Andreas schon angedacht haben,
nämlich den von Blogger.com erstellten Atom-Feed selbst auszuwerten,
daraus die gewünschten Informationen zu extrahieren und diese in HTML-Code
umzuwandeln, der dann noch in die index.html muß. Von hinten durch die Brust
ins Auge also. Nur: Dein Server hat die Möglichkeiten dafür nicht.

Jetzt überlegst Du, ob Du das vielleicht auf dem Server eines Freundes
legen kannst. Dazu mußt Du diese Probleme lösen:

a) Wie merkt das Skript auf dem Server eines Freundes, daß Blogger.com
   gerade über FTP neue Dateien auf Deinen Webspace geschrieben hat und
   daß das Skript jetzt in Aktion treten soll, den Atom-Feed auswerten
   und etwas damit machen soll? Ruft es alle zehn Minuten den Atom-Feed
   von Deinem Webspace runter und überprüft den auf Änderungen? Setzt
   voraus, daß Dein Freund Skripte zeitgesteuert ablaufen lassen kann,
   Dein Webspace das verkraftet und Du noch eine Kopie des Feeds zum
   Vergleichen vorhalten mußt.

b) Andreas' Lösung kannst Du nicht verwenden. Er verwendet nämlich ein
   Modul, das RSS-Feeds, Ein anderes XML-Format zu Content Syndication,
   auswertet. Atom-Feeds wertet es anscheinend nicht aus. Atom ist eine
   recht neue Entwicklung, deren Entwickler RSS ablösen wollen, deswegen
   gibt es noch nicht soviel Software dazu. Du müßtest Dich also mit dem
   Atom-Format beschäftigen und selber Software zur Auswertung schreiben.
   Und einen RSS-Feed scheint Blogger.com inzwischen nicht mehr zu erstellen.

c) Wie kommen die Titel dann in die index.html?
   1. Das Skript auf dem Server Deines Freundes könnte über FTP auf Deinen
      Webspace zugreifen und die index.html neu erstellen. Dann wären Deine
      FTP-Daten neben Blogger.com in einer weiteren externen Stelle im Netz.
   2. Wenn, ja wenn Dein Webserver Server Side Includes unterstützt, dann
      kannst Du damit Brocken von HTML-Code in Deine Seite einbinden. In
      der Praxis dann also so: Jemand ruft die index.html auf. Der Webserver
      bemerkt beim Ausliefern daß er dazu noch den Code von der titles.php
      auf dem Webserver Deines Freundes haben mußt und ruft dieses ab. Die
      titles.php, weil ein Skript, tritt dann in Arbeit und ruft erstmal
      die atom.xml von Deinem Webserver ab und verarbeitet diese auf dem
      Webserver Deines Freundes und schickt dann HTML-Quellcode zurück, die
      Dein Webserver in die ganz am Anfang verlangte index.html einbaut.
      Von hinten durch eine Brust in Australien ins Auge in Deutschland.
      Von den Aufrufzeiten gar nicht erst zu reden.
   3. iFrames. Damit ersparst Du Dir die Verarbeitungszeit von SSI, hast
      aber immer noch das Problem, daß die titles.php erstmal den Atom
      Feed von Deinen Webserver zum Verarbeiten auf den eigenen Server
      holen muß. Außerdem finde ich iFrames irgendwie doof. Aber das ist
      Geschmackssache.

Meine ehrliche Meinung? Du willst Features, die Blogger.com als einfacher
Dienst Dir nicht bieten kann. Ich an Deiner Stelle würde zu einem anderen,
flexibleren Weblogskript auf dem eigenen Server wechseln und dafür auch
den Webspace so upgraden, daß man Weblogskripte, ob auf Perl oder PHP
basierend, da ausführen kann. Du hättest zwar den Nachteil, etwas mehr
zu bezahlen (Obwohl: Das ist wirklich nicht die Welt), aber dafür den
Vorteil, um all die Probleme oben drumherumzugehen, weil Dein Weblogskript
das alles für Dich macht.

Tim