Portál AbcLinuxu, 2. května 2025 09:55
V tejto časti dvojdielneho seriálu sa zoznámime všeobecne s agregáciou, existujúcimi formátmi, ich porovnaním a možnosťami zobrazenia. Článok na záver obsahuje postup pridania RSS kanálu do HTML stránky.
Agregácia/syndikácia webového obsahu je založená na myšlienke uverejňovania zmien na webovom potrále v špeciálnom formáte. Na zobrazenie tohoto formátu existuje množstvo programov, či skriptov, ktoré zmeny umožnia zobraziť či už v samostatnom programe, vložené v nejakej aplikácií, alebo ako súčasť HTML stránky.
Všeobecne sa dá povedať, že autor web stránok vytvorí jeden alebo viac xml súborov, pridá na ne z web stránok odkazy a následne ich podľa potreby aktualizuje. Programy/skripty načítavajúce tieto xml súbory dokážu zistiť, či boli aktualizované, a zvýraznene zobrazia nové položky v nich.
Keďže web agregácia je relatívne mladá vec a pri jej vzniku stáli viaceré firmy alebo jednotlivci, vzniklo množstvo "oficiálnych" formátov.
Asi najjednoduchšie to je s popísaním formátu Atom. Ten vznikol na základe nejednotnosti a rôznorodosti množstva vznikajúcich formátov. Je však relatívne mladý a aktuálne prebieha jeho štandardizácia v IETF.
Formát, alebo skôr skratka, ktorá priniesla toľko zmätku, je RSS. Skratka z toho dôvodu, že názov RSS bol v priebehu času používaný pre viac druhov protokolov, ako napríklad Rich Site Summary, neskôr Really Simple Syndication a následne RDF Site Summary a bol vyvíjaných viacerými vývojármi.
A aby sme si v tom spravili poriadok, tu je zoznam formátov, aj s odporúčaním, ktorý kedy použiť:
Verzia | Vlastník | Výhody | Odporúčanie |
RSS 0.90 | Netscape | Zastaralý po vzniku 1.0 | Nepoužívať |
RSS 0.91 | Vytvorený Netscapom, prebraný do UserLand. | Veĺmi jednoduchý, oficiálne zastaralý po vzniku verzie 2.0, ale stále veľmi populárny. | Použite na jednoduchú syndikáciu. V prípade potreby väčšej komplexnosti zaručuje jednoduchú migráciu na verziu 2.0. |
RSS 0.92, 0.93 a 0.94 | UserLand | Obsahujú bohatšie metadata ako 0.91. Zastarali po vzniku verzie 2.0. | Použite verziu 2.0. |
RSS 1.0 | RSS-DEV Working Group | Založený na RDF, rozšíriteľný pomocou modulov, nekontrolovaný jediným výrobcom. Stabilné jadro, aktívny vývoj modulov. | Použite pre aplikácie založené na RDF, ak potrebujete RDF špecifické moduly. |
RSS 2.0 | UserLand | Rozšíriteľný pomocou modulov, ponúka ľahkú migráciu z vetiev 0.9x. Stabilné jadro, aktívny vývoj modulov. | Použite pre rôzne účely, na syndikáciu s bohatými metadátami. |
Atom | Internet Engineering Task Force (IETF). | Momentálne vstúpil do fáze štandardizácie v IETF. | Odporúčané je počkať na finálnu verziu špecifikácie. |
Aktuálne najpoužívanejší formát podľa syndic8 je RSS 2.0 nasledovaný verziami 0.91 a 1.0 s rovnomerne rozdeleným podielom.
Veľmi sľubne sa vyvíja formát Atom, ktorý si kladie vyššie ciele a okrem zjednotenia formátu agregácie sa snaží zjednotiť aj formát na získanie/objavenie RSS súborov na internete a pripája k tomu formát na uverejňovanie blog zápisov. Blogy postihlo niečo podobné ako webovú syndikáciu a aktuálne existuje na posielanie nového blog zápisu viacero formátov, napríklad Blogger API alebo LiveJournal XML-RPC Klient/Server Protokol, ale to je na samostatný článok. Atom si kladie za cieľ zjednotiť a nahradiť tieto protokoly.
Následne pri popise tvorby RSS súboru budem používať iba RSS 2.0 formát, ale jeho upravenie na inú verziu by nemalo byť náročné.
Na web stránkach sa odkazy na RSS feedy dajú nájsť naprieklad vo forme nasledujúcich ikoniek:
Prípadne vo forme odkazu s názvom RSS, RDF alebo Atom.
Programov na zobrazovanie RSS existuje nepreberné množstvo. Či už priamo vo webových prehliadačoch, ako napríklad vo Firefoxe zabudované prehliadanie:
alebo pomocou rôznych pluginov prípadne samostatných konzolových alebo grafických programov. Dobrú prácu odvádzajú: na MS Windowse RssReader, pre GNOME Liferea, Straw alebo prenositeľný v Jave napísaný RssOwl. Pokiaľ chcete vyčerpávajúci zoznam programov na zobrazovanie RSS, tak navštívte Open directory.
Chcete mať na svojej stránke aktuálny zoznam nových článkov z vášho obľúbeného servera? Ak máte stránky spravené pomocou JSP alebo PHP, tak nie je nič ľahšie. Celá operácia sa skladá z:
A ako vypadá výsledok? Takto je možné zobraziť zápisy z blogu v ABCLinuxu. Viem že do dokonalosti tomu chýba veľa, ale svoj účel to plní.
Nemá význam menovať konkrétne skripty, existuje ich nepreberné množstvo a každý si určite vyberie taký, aký potrebuje. Kľúčové slová do googlu sú: "php rss parser" alebo "jsp rss parser".
V podstate každý skript má metódu na načítanie a parsovanie RSS súboru do nejakého objektu a následne poskytuje metódy na sprístupnenie:
pre celú stránku a konkrétnu položku. Pre vyššie zmienený výstup blogu som použil skript RSSReader a v samotnom HTML kóde to vypadá nasledovne:
<?php // Include the file that does all the work include("./php/rssreader.php"); // This is the URL to the actual RSS feed. // Change this value if you want to show a different feed. $url="http://www.abclinuxu.cz/auto/blog/sloboda.rss"; // Create an instance of the rssFeed object, // passing it the URL of the feed $rss=new rssFeed($url); // If there was an error getting the data if($rss->error){ // Show the error print "<h1>Chyba:</h1>\n<p><strong>$rss->error</strong></p>"; }else{<br /> // Otherwise, we have the data, so we call the parse method $rss->parse(); print "<h1>Môj Blog: "; $rss->showHeading(span); print "</h1>\n"; // Display the image if there is one $rss->showImage("left"); // If the RSS feed provides a link if($rss->link){ // Display it print '<p>Tento blog je vedený na serveri <a href="http://www.abclinuxu.cz" title="AbcLinuxu">www.AbcLinuxu.cz</a> na stránke '; $rss->showLink(); print "</p>\n"; } // Display the description $rss->showDescription(); // Show the news stories $rss->showStories(); } ?>
Webová agregácia ponúka flexibilnú možnosť, ako agregovať poskytovaný obsah viacerých webov do jednej stránky. Jednotný značkovací jazyk umožňuje ľahké zobrazenie týchto zmien v množstve koncových aplikácií. Veľmi sľubne sa rozvíja formát Atom, v ktorom už dnes veľa stránok svoj obsah poskytuje, a má veľké šance odstrániť zmätok, ktorý vznikol zavedením množstva vyššie uvedených formátov.
V ďalšej časti nájdete popis samotnej štruktúry xml súboru, postup ako vytvoriť a zvalidovať RSS súbor, skripty zjednodušujúce prácu a generátor RSS súboru pre pohodlných. A tiež odpovede na otázky z diskusie, samozrejme ak nejaké budú :-).
/bin/sed 's!<link>\(.*\)</link>!&<guid isPermaLink="true">\1</guid>!'
Lepší by to bylo pomocí nějakého XSLT, ale sed je mnohonásobně rychlejší ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.