Tim Tepaße: Bilder in RSS-Feed verlinken

Beitrag lesen

Hallo Ingo,

Mir ist es besonders wichtig, dass mein RSS-Feed von möglichst vielen Usern genutzt werden kann. Was auch immer diese für eine "alte" Software einsetzen. Bzw. was sie auch immer für einfache Feed-Reader nutzen. Darum ist es doch vielleicht gescheiter, wenn ich auf die Verlinkung der Bilder verzichte.

Meiner Meinung nach sind nur noch Selbstbau-Feedreader nicht imstande, das HTML zu verarbeiten, insofern halte ich HTML schon für ein einsetzbares Feature. Was Du auch machen könntest wäre dieses hier:

~~~xml <item>
    <title>Wichtige Nachrichten</title>
    <description>Einmal in Textform</description>
    content:encoded<![CDATA[Zum anderen in
        <abbr title="HyperText Markup Language">HTML</abbr>]]></content:encoded>
  </item>

  
... vorrausgesetzt natürlich, das Präfix "content" sei vorher an den passenden XML Namensraum gebunden:  
  
  ~~~xml
<rss version="2.0"  
       xmlns:content="http://purl.org/rss/1.0/modules/content/">

Um das zu erklären: Früher, als RSS 2.0 nur Text im description-Element transportieren durfte, suchte man nach einer Möglichkeit, trotzdem HTML damit zu transportieren. Es hatte sich (neben anderen inzwischen nur noch unter „exotisch“ laufenden Möglichkeiten) eingebürgert, dazu extra XML-Vokabular aus dem RSS 1.0 Modul Content zu nehmen. RSS 1.0 ist zwar wegen eines anderen Datenmodells (dem von RDF) nicht zu RSS 2.0 kompatibel, allerdings hat es viele „Module“ (XML Namensräume), die gerne ungedachtet der RDF-Herkunft als fremdes XML in RSS 2.0 eingesetzt werden.

Das Element content:encoded ist zusammen mit dem Dublin Core Modul mit Abstand die beliebteste Erweiterung von RSS 2.0 – da darin maskiertes HTML erlaubt ist. Daraus hat sich in den meisten besseren Feedreadern die Praxis herausgebildet, den Inhalt von content:encoded gegenüber description zu bevorzugen, aus zwei unterschiedlichen Gründen:

• description wurde oft als Zusammenfassung/Excerpt eines Eintrages genommen, während content:encoded dann den kompletten Eintrag darstellt.
• description war früher nur reiner Text, während content:encoded den reicheren HTML-Inhalt bereit stellt.

Da die besseren Feedparser content:encoded verwenden, würde ich Dir ans Herz legen, das HTML da hinein zu packen; so kann jeder billige, kaputte Feld-, Wald- und Wiesen-RSS-Parser, der keine Ahnung von der über XML hinausgehenden RSS-Welt hat, immer noch Textinhalt im description erwarten und das ihm unbekannte Element content:encoded ignorieren.

Tim