XSLT + XPath + CSS + XML + XHTML alapú RSS feed - Haszprus überblog

Na, validhuszárok, webdizájnerek, csorgassátok a nyálatokat, itt egy XSLT + XPath + CSS alapon megjelenített RSS feed.

Mi ebben az érdekes? Először is, teljesen tetszőleges tartalmat rakhatok a böngészőben megjelenő rss feed köré. Másodszor, a bejegyzések címei immáron linkként mutathatnak a komment.php-re. Ezt css alapú formázással nem lehet megvalósítani.

Igazából ha az RSS nem kényszerítene arra, hogy CDATA-ba tegyem a descriptiont, akkor még frankóbb lenne. Lehetséges egyébként hogy ezt a problémát valahogy át lehet hidalni, nem jártam körül a témát, őszintén szólva.

Szerintem szép lett.

Egy pusztán css-sel formázott RSS feed így nézne ki. For the record, a Haszprus überblog közel fél éve CSS-sel formázott RSS-sel nyomul(t eddig).

Végül, nem tudok itthon még egy megszállottról, aki RSS feedre XSLT sablont rakott volna. Igaz, nem is kerestem. És az itthon alatt most nem a lakást értem, lol.


RSS: hozzászólások ehhez a bejegyzéshez 23 hozzászólás - Szólj hozzá Te is!


1) Balázs
Ügyes, én is most csinálom a sajátomat Más. A CDATA akkor nem szükséges, ha valid XHTML Strict vagy, különben kiakad rajta. És akkor is nagyon óvatosan kell bánni a különféle HTML entitásokkal.

Tehát az RSS olvasókat nem bántja, ha az én descriptionöm cdata nélkül tartalmaz további html tageket? (persze xhtml validakat)

3) Balázs
Íltalában nem, a böngészőbe épített RSS olvasókkal lehetnek gondok (a Sage különösen érzékeny), de a 3rd party olvasók sokat tűrnek. De hangsúlyozom: az XHTML Strict validság elengedhetetlenül fontos, elég egyetlen lezáratlan tag, keresztbezárás vagy rossz helyre pakolt entitás, ráadásul meg nem engedett tagok is vannak (pl. script), és az RSS-ed működésképtelenné válik.

El ne felejtsem: tényleg eszméletlenül jól néz ki, jobb ez a dizájn is, mint amit még CSS-ből csináltál neki.

Értem én ezt a problémátÂ… Nem nagy ügy validdá tenni a bejegyzéseket, hiszen nem kell visszamenőleg átírni semmit (kb), a feed úgyis csak a legújabb terméseket mutatja (igaz, próbálom havi 20-ra lenyomni a bejegyzéseim számát). De aggasztó, hogy esetleg nem minden olvasó birkózik meg vele, nem éri meg, bár tech-demo gyanánt tényleg meg lehetne csinálni. Az egyik screenshoton látszik, hogy meg is csináltam cdata nélkülire, szépen formázottra, csak nem akarom ezt kompatibilitási veszélyek miatt a netre is kinyomni.

ps. Thx
Viszont:
a bejegyzések az én véleményemet, vagy sok esetben annak az ellentétét tükrözik,
Reméljük, most nem ez utóbbi a helyzet

5) Balázs
Szerintem próbáld ki (csinálj egy nem publikus alternatív RSS fájlt), rendszeresen ellenőrizd Sage-dzsel és egyéb olvasókkal, ha bírják, akkor mehet CDATA nélkül is, bár szerintem az XSLT elég lehetőséget nyújt a CDATA kitrükközésére.

re ps.: Nem, most nem ez a helyzet. Tényleg k*va jó

Nos ezekkel a trükközésekkel lenne célszerűbb inkább tisztába jönni

7) suexID
Hát ehhez minden elismerésem, annak ellenére, hogy nem látom túl sok értelmét az RSS formázásának!

8) Balázs
Hát az XSLT-nek szép hosszú specifikációja van, kellemes tanulmányozgatást Most pedig jó éjt, szép álmokat, a hétvégén meg utánajárok, és ha jutok valamire, azt meg fogom írni a blogomban is.

Amikor elkezdtem szórakozni az XSLT-vel még valamikor fél éve (nemtom, rá lehet keresni), akkor gondolkodtam rajta hogy a blogot megcsinálnám ilyenre (XML output, XSLT+CSS formázás), de alapvetően nemtom lenne-e értelme.

Kompatibilitási szempontból nyilván problémákat vetne fel, bár az IE6 és a Firefox jól veszi, a többi meg érdektelen.

Viszont ha a letöltött XML-en lehet cserélni az XML újratöltése nélkül az XSLT-t, vagy még inkább megváltoztatni újratöltés nélkül az XSLT-ben egy-két paramétert (például az elemek rendezésének sorrendjét), vaaagy az XML-t kicserélni az XSLT alatt, az kurvasok jó feature-t hozhatna.

(Ne feledjük hogy számomra ez a site legalább annyira fejlesztési játék, mint amennyire blog, csak épp mostanság nem szánok rá időt.)

10) Balázs
Nem tudom, szerintem újratöltés nélkül csak javascripttel lehetne cserélni, de az mekkora gyíkság lenne már. Egy jól megszerkesztett XML nem olyan nagy, hogy ma, a szélessávú net korszakában ne bírna ki bárki egy újratöltést. De most már tényleg jó éjt.

Balázs, micsoda elavult elvek ezek Manapság, amikor pont az a trend, hogy minél kevesebbet kelljen a szerverhez fordulni. A webalkalmazásoknak pont az a lényege, hogy soft realtime, mint egy lokális szoftver.

És szerintem kurvanagy dolgokat lehetne művelni egy js-sel változtatható paraméterű xslt-vel. Mondok egy példát: 20-asával oldalakra tördelt kommentek, és realtime lapozgatás köztük. Realtime szűkítése az archívumban megjelenő bejegyzéseknek kategóriák szerint.

Persze ez megoldható úgyis, ha mindenféle hidden szarságot rakok html kódba, de ez ... hmm... ez egész jó ötlet :ÍÍÍ Nem mintha nagyon új lenne, ld. Homár, bár ők nem csináltak lapozást. Vagy hogy ne menjünk ilyen messze, a 12 hónapnál régebbi archívumlinkjeimet most is így rakom ki a menübe. Nem egy leányálom a kódja mondjuk.

Na de a kategória szerinti szűkítés nagyon nagyon durva lenne html+js kombóval megoldva. Ellenben xslt-ben ugye csak azt a paramétert kellene megváltoztatni, hogy pl.
<xsl:if test="bejegyzés_kategóriája = megjelenítendő_kategória">
    megjelenítjük a bejegyzést
</xsl:if>


jo lett, gratulalok. az egesz blogot lenne igazan laza megoldani igy

14) Balázs
Na a komment RSS-emet már megcsináltam így.

Azt hiszem, itt lesz a megoldás a CDATA-s gondra: http://www.dpawson.co.uk/xsl/sect2/cdata.html#d2687e282

15) Balázs
Megcsináltam a bejegyzéseket is, a fenti link meg sajnos nem vált be. Most boncolgatom mindenfajta nyílt forrású RSS olvasó kódját, hátha azokból jutok valami használható és működő dologra.

16) Mefi
Az az egy problema, ami mellesleg ciki is, hogy az Opera (9.x kivetelevel) nem kezeli eme remeket. A ciki meg az, hogy az IE meg gyonyoruen hasznalja. Mindenesetre tenyleg jo lett.

17) Balázs
az az Opera számára ciki de az Opera rögtön felkínálja, hogy felveszi a feedlistába, onnantól fogva meg kit érdekel az xslt

18) Balázs
Na arra jutottam, hogy ezt egy PHP alapú XSLT-vel lehetne megoldani.

Kliensoldali XSLT-ben sajnos egyelőre nem nagyon lehet bízni (leginkább az IE tud olyat, többiek ellen pl. Sablotronnal kell harcolni)

20) XYBeR
"Végül, nem tudok itthon még egy megszállottról, aki RSS feedre XSLT sablont rakott volna. Igaz, nem is kerestem."



én viszont már láttam. nem is 1-et. nem mintha lényeges lenne

XYBeR XYBeR: Hol?
Ralesk Ne’vennoyx Ralesk: durva hogy az IE még ma is fejlettebb némely társánál. Nagyon-nagyon-nagyon durva, különösen annak tükrében hogy micsoda anti-ie kampányok futnak, mondván hogy az ie idejétmúlt. Úgy látszik, az MS-nél 6 éve megcsinálták azt, amit sok konkurensnél még ma sem.
Balázs Balázs: Pontosan milyen php közreműködésre gondoltál? Ellenőrizni hogy mi a user agent, és aszerint CDATA-t rakni, vagy kihagyni?

22) Balázs
Haszprus: nem. A PHP-val le tudod ellenőrizni, hogy valid-e a CDATA-n belüli HTML, XHTML-t tudsz kreálni belőle (meg kiszedni az esetleges script-eket belőle), és már le is vághatod a CDATA-t, szintúgy a PHP segítségével, és még annál is szebb lesz az RSS-ed.

"Mi ebben az érdekes?"
Hát az, hogy nekem egy árva kommentem sincs ott...
Persze úgy nem is lehet, hogy 3 álló napja csak OPRE-t tanulok...


Egy évnél régebbi bejegyzésekhez nem lehet hozzászólni.