۱۳۸۷/۰۸/۱۲

دو نكته كوتاه در مورد RSS هاي فارسي


اولين نكته مربوط به تاريخ هر مدخل (entry) مي‌شود. اين تاريخ نبايد شمسي باشد! اين تاريخ بايد حتما استاندارد باشد. عموما يكي از دو استاندارد زير بايد مورد استفاده قرار گيرد:


RFC #822
http://www.ietf.org/rfc/rfc0822.txt
Standard for ARPA Internet Text Messages (Date and Time Specification)

RFC #3339
http://www.ietf.org/rfc/rfc3339.txt
Date and Time on the Internet (Timestamps)


براي مثال در دات نت براي توليد اين فرمت استاندارد مي‌توان به صورت زير عمل كرد:
DateTime.Now.ToUniversalTime().ToString("r")

متاسفانه بسياري از برنامه نويس‌هاي هم وطن اين نكته را رعايت نمي‌كنند و برنامه‌هاي فيدخوان را دچار مشكل مي‌كنند. (براي نمونه برنامه معروف feedDemon تاريخ چند سال پيش را ثبت خواهد كرد و در به روز رساني و دنبال كردن مطالب سايت مورد نظر دچار مشكل خواهد شد)

چند مثال از اين دست: (سورس صفحه را در مرورگر مطالعه نمائيد)
http://www.faradade.com/Xml/RSS.xml
و يا
http://www.ayande.ir/atom.xml
و يا
http://www.tci-sk.ir/Rss.aspx
(ايشان بهتر است علاوه بر اين مورد، از XmlTextWriter استفاده كنند و خروجي را به صورت يك فايل xml و نه html در مرورگر Flush كنند)

و يا بدتر از اين بعضي از سايت‌ها آموزش‌هاي غلطي را هم ارائه مي‌دهند:
http://www.faradade.com/Article.aspx?code=a726ae6a-f8e1-4b29-88b4-8e7a04e6d06d
به قسمت pubDate دقت كنيد.
مطابق معمول اين آموزش الان در 200 سايت كپي و پيست شده! عنوان آموزش را در گوگل جستجو كنيد!
اين كد آموزش داده شده يك ايراد ديگر هم دارد. آيا الزامي دارد كه حتما قسمت con.Close به همين ترتيب نوشته شده اجرا شود؟ اگر اين بين خطايي رخ دهد تكليف اين كانكشن باز و ساير موارد چه خواهد شد؟ كلا استفاده از try و finally و يا استفاده از using را براي چه هدفي اختراع كرده‌اند؟

و يا بعضي از سايت‌ها اين مورد را رعايت مي‌كنند اما به صورت نصفه و نيمه. براي مثال: (تاريخ ارائه شده كامل نيست. بنابراين استاندارد تلقي نخواهد شد)
http://www.srco.ir/Articles/RSSArticles.xml

براي آزمايش ميزان استاندارد بودن خروجي فيد خود مي‌توان از سرويس زير استفاده كرد:
http://validator.w3.org/feed/

مطلب ديگر ايراد نيست بلكه نكته‌اي است كه حداقل از IE7 به بعد رعايت مي‌شود:
لطفا زبان فيد را مشخص كنيد! بله، اگر اين مورد را مشخص كنيد، از IE7 به بعد فيد فارسي به صورت خودكار از راست به چپ نمايش داده مي‌شود و اين امر سبب سهولت خواندن مطالب فارسي سايت شما خواهد شد.
مشاهده اصل مطلب كه توسط يكي از اعضاي تيم مربوطه مايكروسافت نوشته شده:
مشاهده

اصلاحيه براي RSS فارسي:
<language>fa-IR</language>

و براي Atom فارسي:
<feed xml:lang="fa">

و اگر مي‌خواهيد خروجي استانداردي داشته باشيد، كتابخانه سورس باز زير توصيه مي‌شود:
http://www.codeplex.com/Argotic

با تشكر از همكاري شما!