الأحد، 14 أغسطس 2005

نظرة على Microformats

افتتح موقع [ميكروفورماتس](http://www.microformats.org/) قبل شهرين تقريباً، وقد قررت وقتها أن أكتب شيئاً عن مواصفات ميكروفورماتس لكن لم أفعل هذا إلا اليوم.

قبل الحديث عن مايكروفورماتس دعوني أوضح نقطة مهمة حول XHTML، وهي أن XHTML ليست لغة تصميم، بل هي لغة بيانات، بمعنى آخر كل أمر من أوامر XHTML له معنى خاص، فأمر `

` مثلاً __يجب__ أن يستخدم لتكوين الفقرات، ومن الخطأ استخدامه لوضع فراغات بين السطور مثلاً، إن أراد شخص ما تغيير التصميم فعليه أن يستخدم CSS، أما XHTML فهي للبيانات أو المحتويات فقط، وتذكر دائماً أنك تستطيع تغيير تصميم هذه المحتويات إلى أي شكل تريد من خلال CSS.

لماذا أذكر كل هذا الآن؟ لأن مواصفات مايكروفورماتس تعتمد كلياً على XHTML، مايكروفورماتس ليست لغة أو تقنية جديدة، ولم تنشأ لكي يتخلص الجميع من التقنيات السابقة، بل هي تقدم حلولاً بسيطة لمشاكل محددة، ويمكن استخدامها __الآن__، وبما أنها تستخدم XHTML فهي متوافقة مع أغلب المتصفحات إن لم يكن كلها.

حسناً، ما هي ميكروفورمات تحديداً؟ هي مواصفات لكتابة البيانات بلغة XHTML، وحتى نفهم هذه المواصفات دعونا نستعرضها هنا.

### أضف rel للروابط
في XHTML هناك أمر `` لإضافة الروابط، وهذا الأمر في رأيي هو أساس شبكة الويب ومن دونه تصبح الويب بدون فائدة أو قيمة، هذا الأمر له [خصائص متعددة](http://www.w3schools.com/tags/tag_link.asp)، منها href لتحديد الرابط، وrel لتحديد العلاقة ما بين الصفحة الحالية والصفحة التي سيقودنا إليها الرابط، لنأخذ مثالاً على ذلك:

<a href="http://www.serdal.com/archives/2005/07/04/hacking-tips/"
rel="bookmark">نصائح صغيرة لمن يريد أن يكون مبرمجاً</a>


في المثال أعلاه رابط يقود الزائر إلى موضوع في موقعي، ولأمر الرابط هناك خاصية rel وهذه الخاصية وضعنا لها القيمة bookmark، أي أن الرابط سيقود الزائر إلى صفحة يمكن أن يضعها في مفضلة متصفحه، أو يضع رابطها في موقعه أو في خدمة de.icio.us مثلاً.

مايكروفورماتس تحوي ثلاث مواصفات تتعلق بالخاصية rel، وهي في الحقيقة ثلاث قيم يمكن أن توضع في خاصية rel، وهي [tag](http://microformats.org/wiki/rel-tag) لتحديد تصنيف الرابط، وهذا التصنيف يمكن أن يستخدم في مواقع مثل del.icio.us و[فليكر](http://www.flickr.com/) وكذلك المدونات، وهناك القيمة [no-follow](http://microformats.org/wiki/rel-nofollow) والتي تخبر محركات البحث مثل جوجل أن يتجاهل الرابط الذي يحوي هذه القيمة، وهذه القيمة مفيدة لكي لا يقوم شخص ما برفع مستوى موقعه في محركات البحث باستخدام أساليب غير مرغوب فيها كأن يكتب مئات أو آلاف التعليقات التافهة في مختلف المدونات، القيمة الثالثة هي [license](http://microformats.org/wiki/rel-license) وتعني أن الرابط سيقود الزائر إلى صفحة تحوي رخصة قانونية للمحتويات التي يجدها في الصفحة الحالية.

ثلاث مواصفات بسيطة، يمكن استخدامها الآن، مجرد قيم تضاف لخاصية rel في الروابط، إن وضعها مطور المواقع لن يلاحظ الزائر أي اختلاف، وبالمناسبة، ووردبريس يضع القيمة nofollow لكل رابط خارجي يكتبه أحد الزوار في التعليقات، فهل لاحظ أحدكم ذلك؟ فائدة هذه القيمة أنها لن تسمح لأحد باستغلال التعليقات لكي يرفع مكانة موقعه في محركات البحث.

### مواصفات أخرى مفيدة
هناك مواصفات أخرى مثل [hCalendar](http://microformats.org/wiki/hcalendar) و[hCard](http://microformats.org/wiki/hcard)، أما hCalendar فهي تعتمد على مواصفات [iCalendar](http://www.ietf.org/rfc/rfc2445.txt) والتي بدورها تستخدم في برامج مثل [آي كال](http://www.apple.com/macosx/features/ical/) و[سنبيرد](http://www.mozilla.org/projects/calendar/sunbird.html) وبرامج التنظيم الأخرى، قد يسأل أحدكم: إن كان هناك مواصفات سابقة، لماذا قام مشروع ميكروفورماتس بإنشاء مواصفات جديدة؟ الإجابة هي أن مواصفات hCalendar هي نفسها iCalendar لكن كتبت بلغة XHTML، ما فائدة ذلك؟ الآن يمكن نشر مواعيد المؤتمرات مثلاً في صفحات المواقع، بمجرد أن يضغط الزائر على رابط لموعد مؤتمر مثلاً سيقوم المتصفح بإضافة هذا الموعد لبرنامج التنظيم الذي يستخدمه.

مواصفات hCard لا يختلف حالها عن hCalendar، فهي تعتمد على مواصفات [vCard](http://www.ietf.org/rfc/rfc2426.txt) لكنها مكتوبة بلغة XHTML وبالتالي يمكن نشرها في صفحات الويب، وهذه المواصفات خاصة بعناوين الأشخاص، عادة في أنظمة التشغيل برنامج للعناوين (Address Book)، إذا أرسل لك شخص ما بطاقته الشخصية (vCard) يمكنك إضافتها لدفتر العناوين ولن تحتاج إلى إدخال معلومات الشخص يدوياً، فالبطاقة تحوي اسمه وعنوانه وبريده الإلكتروني وغيرها من المعلومات الشخصية، وhCard لا تختلف عن vCard في أي شيء سوى أنها مخصصة لصفحات الويب.

هناك [مواصفات أخرى](http://microformats.org/wiki/Main_Page) يمكنكم القراءة عنها، هذه المواصفات عندما تنتشر ويبدأ البعض في استخدامها، سنرى المواقع تتفاعل في ما بينها بشكل أفضل، كذلك ستتفاعل البرامج مع المواقع بشكل أسهل، وستظهر مواصفات أخرى قريباً تقدم حلاً بسيطاً لوصف بيانات مختلفة، كاستعراض المنتجات، أو نشر السيرة الذاتية.

هناك مواقع وأدوات تستخدم ميكروفورماتس، مثل برنامج [ووردبريس](http://wordpress.org/)، خدمة [أوديو](http://odeo.com/blog/2005/07/adding-microformats-to-odeo.html)، وهناك من برمج [سكربت](http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php) لإضافة Greasemonkey يقوم بإضافة المواعيد التي كتبت بمواصفات hCalendar إلى برنامج التنظيم الذي يستخدمه الزائر، وإذا زرتم [الويكي](http://microformats.org/wiki/Main_Page) الخاص بموقع ميكروفورماتس ستجدون عشرات المواقع التي بدأت تستفيد من هذه المواصفات.