Jak na Atom 0.3 feed - konkrétní návod

MyEgo.cz

home foto blogy mywindows.cz kontakt

Jak na Atom 0.3 feed - konkrétní návod

Technologie 07.06.04

Atom 0.3 feed do budoucna zcela jistě nahradí RSS. RSS, které máme dnes ve verzích 0.90, 0.91, 0.92, 0.93, 0.94, 0.95 draft, 1.0 a 2.0, 2.01, a snad i nějakých dalších verzích. RSS 0.9x řeší přidávání nových funkcí desetinkovým verzováním. To je šílenost. RSS 1.0 je vlastně RDF API. RSS 2.0 je pro změnu podobné návrhu RSS 0.93 a vyšší. Prostě zmatek.

Tento zmatek se snaží řešit a zlepšit Atom 0.3 feed. Ten, na rozdíl od RSS, umožňuje definovat vlastní namespaces, a podporuje nejenom API pro čtení, ale i zápis a měl by být skutečně zpětně kompatibilní (novější verze se staršími).

Jak připravit Atom 0.3 feed pro Váš web? Zde je návod.

Hlavička Atom 0.3 feedu:

<?xml version="1.0" encoding="iso-8859-2"?>
<?xml-stylesheet type="text/css" href="atom.css"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">

Titulek feedu, link na web, a údaje o redakčním systému (je možno vynechat):

<title>název Vašeho webu</title>
<link rel="alternate" 
      type="text/html" 
      href="URL Vašeho webu" />
<generator url="http://hulan.cz/">BLOG:CMS</generator>

Informace o feedu (tuto sekci je možno použít pro její zobrazení čtenářům, kteří na link kliknout v browseru; nikoliv v Atom čtečce):

<info mode="xml" type="text/html">
<div xmlns="http://www.w3.org/1999/xhtml">
  This is an Atom formatted XML site feed. 
  It is intended to be viewed in a Newsreader 
  or syndicated to another site. 
</div>
</info>

Informace o tom, kdy byl tento feed naposledy modifikován:

<modified>2004-06-07T12:13:27Z</modified>    

Následují vlastní články. Článek má titulek <title>, odkaz na něj <link>, <name> jméno autora článku <author>, datum kdy byl modifikován <modified> a vytvořen <issued>, a samozřejmě vlastní obsah <content>. Obsah je zde vkládán jako aplikace typu xhtml+xml, nicméně je možné uvést například i /htmltype="text" a mode="escaped" a vložit escapovaný string, popřípadě včleněný do sekce <![CDATA[ … ]]>.

<entry>
 <title type="text/html" 
        mode="escaped">Vincent dodávka Gogh</title>
 <link rel="alternate" 
       type="text/html" 
        href="https://myego.cz/?itemid=123" />
 <author>
  <name>rADo</name>
 </author>
 <modified>2004-06-03T11:20:24Z</modified>
 <issued>2004-06-03T11:20:24+02:00</issued>
 <content type="application/xhtml+xml" 
          xml:base="https://myego.cz/" 
          xml:lang="cs-CZ" 
          xml:space="preserve">
 <div xmlns="http://www.w3.org/1999/xhtml">
 <p>O toto se nelze nepodělit, proháněl jsem jedním 
    nejmenovaným translátorem jeden dost obsáhlý 
    anglický text, abych si mírně usnadnil práci, 
    ale moc to nepomohlo. Je to nepoužitelné, nicméně 
    občas alespoň úsměvné.</p>
 <p>Co by jste říkali na přejmenování slavného holandského 
    malíře <a href='http://www.vangoghgallery.com/'>
    Vincenta van Gogha</a> na Vincenta dodávku 
    Gogha?</p>
 <hr />
 <p>Znáte jazykové přeladače, které si s tím poradí 
    lépe? Které jsou použitelné?</p>
 </div>
 </content>
 <id>https://myego.cz/:1:382</id>
 </entry>

Patička celého feedu je potom následující:

</feed>

Příklad šablony Atom 0.3 feedu pro Nucleus XE:

<entry>
 <title type="text/html" mode="escaped">
   <![CDATA[<%title%>]]>
 </title>
 <link rel="alternate" 
       type="text/html" 
       href="<%FancierURL%>" />
 <author>
 <name><%author%></name>
 </author>
 <modified><%date(utc)%></modified>
 <issued><%date(iso8601)%></issued>
 <content type="application/xhtml+xml" 
          xml:base="https://myego.cz/" 
          xml:lang="cs-CZ" 
          xml:space="preserve">
 <div xmlns="http://www.w3.org/1999/xhtml">
 <%body%>
 <%more%>
 </div>
 </content>
 <id><%blogurl%>:<%blogid%>:<%itemid%></id>
 </entry>

Příklad Atom 0.3 feedu: atom.php.


Komentáře

  1. 1 noname 09.06.04, 01:06:38
    FB

    ahoj, tak jsem právě zjistil, že můj sharpreeder umí i atom. To je fajn, měním odkazy kde to jde na atom (což jsou prakticky jen ty které používají tvůj systém).
    Jeden možná problém atomu, možná exploreru, možná bůhvíčeho a možná ničeho ale uvážená vlastnost - když kliknu v prohlížeči na rss feed, tak se mi normálně otevře xml. Když kliknu na atom feed, tak mi to nabídne stáhnutí souboru či jeho otevření (když dám otevření, vyberu explorer, tak už se pak otvírá v prohlížeči). V čem je rozdíl když je to na první pohled podobná textová struktura?

  2. 2 Radek Hulán 09.06.04, 02:06:14
    FB

    [1] to právě zkoumám proč, v Opeře 7.50 mi to normálně otevře XML stránku, v MSIE 6.0 nic, ve Firefoxu 0.8, pokud změním příponu na *.xml, tak mi to otevře taky XML, jinak to blbne..

    Zajímavé, že RSS 0.9-2.0 je v pohodě.

    Zatím jsem nepřišel na to, proč.

  3. 3 noname 09.06.04, 03:06:02
    FB

    hele (velká spekulace, http a spol jsem probíral strašně dávno) - není možnost na serveru specifikovat nějaký formát poslání dat ze serveru, jestli je to binary či text či co? Vím že to bylo kdysi dávno u bbs, je to u příloh mailů, atd. a teoreticky by to mělo být i u souborů na serveru a kdyby se nějakým nedopatřením označila skupina vzniklá v atom že je binary, tak by se tím pak imho zacházelo jako s binary a nabízelo stažení místo otevření (ale fakt mě nebít jestli je to kravina).

  4. 4 Radek Hulán 09.06.04, 06:06:53
    FB

    [3] Atom i veškeré verze RSS posílám naprosto stejným způsobem..

  5. 5 Radek Hulán 09.06.04, 09:06:32
    FB

    [3] tak jsem to vyřešil, už to funguje pro MSIE, Operu i Gecko-based browsery.

    Viz:
    http://myego.cz/item...

  6. 6 dgx 11.06.04, 03:06:22
    FB

    mimochodem, tento článek mi díky použití <![CDATA[ ... ]]> v textu kompletně "zrušil" FeedReadera.

    A těm štastlivcům, kteří si stahují jen perex, odstřelí FeedReadera tento komentář.

    :-)

  7. 7 Radek Hulán 11.06.04, 07:06:12
    FB

    [6] to je zvláštní, <![CDATA[ ... ]]> je tam pochopitelně vloženo entitou.. FeedReader má bug.

  8. 8 dgx 12.06.04, 12:06:17
    FB

    [7] jistě, je to bug ve FeedReaderu, a zřejmě zatím neobjevený.

    Pro uživatele přidávám nápovědu, jak problém odstranit: Najděte soubor headlines.xml a v něm odstraňte výskyty řetětce '<![CDATA[ ... ]]>' (bez ohraničujích uvozovek). FeedReader je třeba mít vypnutý.

    A kde je problém? Program si informace ukládá ve formátu XML. Pro zaznamenání html kódu použivá CDATA, v nich je totiž možné použít jakékoliv znaky (< > & ...). Tedy s jednou jedinou vyjímkou - a tou jsou tyto tři po sobě jdoucí znaky ]]>

    Bohužel, FeedReader jejich výskyt v HTML kódu neošetřil, a na to doplatil.

    P.S. Kdyby se tak stalo u spotu "Jak se naučit profesionálně programovat?", byla by to dobrá ironie, že? :-)