Heute habe ich versucht, diesem kleinen Notizbuch einen (noch experimentellen) RSS-Feed zu spendieren. Dabei bin ich auf folgende Probleme gestoßen:
[Erstens]: RubyFrontier erlaubt es einem zwar, ein eigenes pageheader
-Makro zu definieren, aber offensichtlich kein eigenes pagefooter
-Makro. Mein simpler Versuch, in dem Ordner xml, in dem der RSS-Feed liegen soll, eine Datei #pagefooter.txt anzulegen, die nur die dürren Zeilen
</channel>
</rss>
enthielt, schlug zwar nicht fehl, aber RubyFrontier ignorierte diese Datei geflissentlich.
[Lösung]: Das Makro <%= pagefooter() %>
im Template gar nicht erst aufrufen. Mein Template für den RSS-Feed sieht daher so aus:
<%= pageheader() %>
<p id="bodytext"></p>
</channel>
</rss>
[Zweitens]: Egal ob man nur <bodytext>
oder <p id="bodytext"></p>
im Template verwendet, RubyFrontier klammert den zu rendernden Text gandenlos in ein <p>…</p>
-Paar. Und das hat natürlich im RSS-Feed nichts verloren.
[Lösung]: Dem RSS-Feed eine Direktive #xml "true"
zu verpassen und dann am Ende des finalFilters.rb folgende Zeilen einzufügen:
if adrPageTable[:xml]
adrPageTable[:renderedtext] = adrPageTable[:renderedtext].gsub("<p>", "")
adrPageTable[:renderedtext] = adrPageTable[:renderedtext].gsub("</p>", "")
end
Im Endeffekt besteht der RSS-Feed nun aus drei Dateien. Einmal das oben schon erwähnte, minimalistische Template (ich habe es blank genannt), dann einem Pageheader, der so aussieht:
<?xml version="1.0" encoding="UTF-8"?>
<rss version ="2.0">
<channel>
<title>Jörgs kleines Notizheft</title>
<link>http://notizheft.kantel-chaos-team.de/</link>
<description>Auf den Weg zum World Markdown</description>
<language>de-de</language>
<copyright>(cc) 2012 - <%= yearnow() %></copyright>
<image>
<url>http://notizheft.kantel-chaos-team.de/images/rubyFrontierLogo.png</url>
<title>RubyFrontier Logo</title>
<link>http://www.schockwellenreiter.de/impressum/</link>
</image>
Und schließlich die eigentliche RSS-Datei (rss.txt, wird nach rss.xml herausgerendert):
#title "RSS-Feed"
#fileextension ".xml"
#markdown "false"
#template "blank"
#xml "true"
<item>
<title>Magisches Spielzeug</title>
<description>Heute: Das magnetische Orakel</description>
<link>http://notizheft.kantel-chaos-team.de/2012/08/20120809photo01.html</link>
</item>
...
Momentan wird diese Datei von mir noch händisch gefüllt. Der nächste Schritt wäre daher, ein Makro zu schreiben, daß dieses mehr oder weniger automatisch erledigt.
Schließlich sollte man noch im Pageheader an geeigneter Stelle diese Zeile einfügen
<link rel="alternate" type="application/rss+xml" title="RSS 2.0"
href="http://notizheft.kantel-chaos-team.de/xml/rss.xml" />
damit von Browsern und Aggregatoren der Link zum Feed erkannt wird.
Über …
Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!
Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.
Werbung