description vs. content:encoded im RSS Feed

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
derMicha
Regular
Posts: 21
Joined: Fri Aug 10, 2007 10:18 am
Location: Berlin

description vs. content:encoded im RSS Feed

Post by derMicha »

S9Y hat offensichtlich die Angewohnheit den Text eines Eintrags in das Element content:encoded zu packen. Wordpress und alles was mir sonst bislang bewusst unter gekommen ist füllt das Element descripion (als PCDATA) und meist zusätzlich das Element content:encoded. Kann ich S9Y dazu bringen auch das description Element zu befüllen? Das wäre im Moment für mich eine riesen Erleichterung. Ich setzte an der Stelle einen Crawler ein, der ziemlich viele RSS Feeds zur Zeit recht erfolgreich ausliest, nur bei meinen neuen S9Y Feeds greift er ins leere. Ändere ich nun den Crawler oder ist eine Veränderung in S9Y noch einfacher ;)
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: description vs. content:encoded im RSS Feed

Post by garvinhicking »

Hi!

Ja, laut RSS-Spezifikation DARf 'description' kein HTML enthalten. WP benutzt da den "Trick" mit PCDATA, der mir aber nicht so geheuer scheint, da laut spec 'content:encoded' genau dafür gedacht ist.

Grundsätzlich kann das jeder selber über seine feed*.tpl Datei steuern, dort kannst Du das also in deinem Template leicht ienfügen. Es ist standardmäßig nicht dort, da ein zusätzliches 'Description'-Feld die Größe des RSS-Feeds auch stark erhöhen würd.e

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

@Micha: Sag mir doch Bescheid, dass Du das auch hier diskutierst. :-)

Ansonsten: Wenn ich mir z.B. den RSS Feed vom Tagesspiegel ansehe, dann habe ich den Verdacht, dass es falsch ist, den gesamten Artikel per PCDATA in das description Tag des RSS Feeds zu packen.

description sollte eigentlich nur eine Kurzbeschreibung des Artikels sein, optional mit zusätzlichem Link zum vollen Artikel.

encoded enthält dann den vollen Artikel.

Entsprechend reagieren auch die RSS Reader, die ich kenne: Wenn description und encoded enthalten ist, dann wird immer encoded dargestellt, bei Thunderbird werde ich sogar gefragt, ob ich nur die Zusammenfassung des Artikels lesen will. Wenn ich das bejahe, wird nur die description angezeigt.

Unterm Strich: Euer Crawler verhält sich meiner Meinung nach an dieser Stelle falsch. Ist er am kompletten Artikel interessiert, sollte er immer zuerst das encoded Tag auslesen, weil das immer den gesamten (vom Admin freigegebenen) Artikel enthält. Erst wenn das nicht vorhanden ist, sollte der Crawler auf das description Tag wechseln, was dann eine "Kurzform" des Artikels darstellt. Wenn kein encoded vorhanden ist, ist die Wahrscheinlichkeit aber recht hoch, dass das dann wieder der gesamte Artikel ist.
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Da kann ich nur nickend Grischa zustimmen. :-)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
blog.brockha.us
Regular
Posts: 695
Joined: Tue Jul 03, 2007 3:34 am
Location: Berlin, Germany
Contact:

Post by blog.brockha.us »

Allerdings: Serendipity ist ja nicht umsonst "die beste Blogsoftware der Welt".. ;-)

Man kann mit der auch solche Schweinereien machen, wenn man es denn unbedingt will.. Dazu ändert man einfach das Template, aus dem der RSS feed erstellt wird (wie Garvin schon erwähnte). Das Template heißt feed_2.0.tpl. Sollte sich das nicht in eurem Template Verzeichnis finden, dann einfach aus dem default Template kopieren.

Um einen "WordPress ähnlichen" aber nicht im Sinne der RSS Spec stehenden feed zu erzeugen macht man nun folgendes:

Code: Select all

{if !empty($entry.body)}
    <content:encoded>
    {$entry.feed_body|@escape} {$entry.feed_ext|@escape}
    </content:encoded>
{/if}
ersetzen mit

Code: Select all

{if !empty($entry.body)}
    <content:encoded>
    {$entry.feed_body|@escape} {$entry.feed_ext|@escape}
    </content:encoded>
    <description><![CDATA[{$entry.feed_body} {$entry.feed_ext}]]></description>
{/if}
Fettisch! :-)
- Grischa Brockhaus - http://blog.brockha.us
- Want to make me happy? http://wishes.brockha.us/
derMicha
Regular
Posts: 21
Joined: Fri Aug 10, 2007 10:18 am
Location: Berlin

Post by derMicha »

Die Variante mit den Templates ist nett. Bin begeistert.

Wir werden dem ersten Vorschlag folgen und unseren Crawler anpassen.

Danke für Eure Hinweise.
Micha
Post Reply