You're viewing all posts tagged with markdown

التعرف التلقائي على اتجاه الفقرات في صفحات الويب

قبل ايام بدأت افتتاح مدونة جديدة .. هدفها الاساس نشر مواد استخدمها لتعلم اللغة اليابانية: http://nihongo.hasenj.org

المدونة تقريبا لا تزال قيد الانشاء، لكني واجهت مشكلة: محاذاة النص العربي الى اليمين و النص الياباني الى اليسار!

المشكلة تكمن في ان markdown لا يحتوي اي وسيلة لتحديد اتجاه النص، و قد تجاوزت هذه المشكلة في هذه المدونة عن طريق حيلة TagsAsClasses كما نشرتها هنا

لكن هذه الحيلة تصلح فقط حين يكون هناك اتجاه واحد لجميع الفقرات (باستثناء الكود).

فكرت مليا في حل لهذه المشكلة

فكرت اولا باضافة دعم خاص للغة العربية في ماركداون و لكن ماذا عن اللغات الاخرى مثل تسكتايل؟

بعد تفكير ملي، وجدت ان افضل حل عملي هو عمل جافا سكربت يقوم بالتعرف تلقائيا على الفقرات العربية و تحويل اتجاهها لليمين.

هذا الحل محدود في انه يعمل على الوب فقط! و لكنه عملي .. لانه المجال اللذي نحتاجه فيه غالبا.

الكود هنا: http://github.com/hasenj/bidiweb

و هذه هي النتيجة:

sample

دعم اللغة العربية في markdown

هل سمعت من قبل بـ Markdown؟ انها لغة الترميز اللتي يستخدمها موقع Stackoverflow و اخواته للكتابة و النشر, منذ ان تعلمتها هناك و انا احبها و اظن انها الطريقة الوحيدة المريحة لكتابة مواضيع/تدوينات برمجية

تخيل عندما تكتب تدوينة في wordpress مثلا و تريد اضافة كود, يجب ان تدخل اوسمة html يدويا, يعني <pre><code> الخ,

بينما في Markdown فالكود هو مجرد فقرة مدفوعة للامام باربع مسافات امام كل سطر

هذا فضلا عن البساطة في اضافة العناوين و اضافة *emphasis* الى كلمة او فقرة

اصبحت لا اطيق اي طريقة لنشر اي مادة برمجية لا تعتمد على Markdown, و احد اسباب انتقالي الى tumblr فضلا عن النواحية الفنية في الموقع هو دعمه المباشرة لتقنية markdown و كذلك انني استطعت تحويره لكي استطيع نشر مواضيع عربية مكتوبة بالمارك داون

هنا نموذج حي عن امكانيات Markdown

و لكن حاول الكتابة باللغة العربية؟ ستجد ان الكتابة تظهر لليسار و ستكون مصفوفة من اليسار الى اليمين, يعني لو ادخلت كلمات انكليزية في الوسط فستكون النتيجة كارثة انسانية :)

صحيح انني حليت المشكلة في هذا الموقع, و لكنه حل ترقيعي كما يقولون, و نحتاج الى حل افضل.

اولا تعريف المشكلة: البحث عن طريقة لكتابة تدوينات عربية برمجية من دون html او لغات ترميز معقدة. ماركداون تحل المشكلة و لكنها لا تعرف شيئا عن اللغة العربية.

طبعا في عالم الويب فإن دعم عرض و تحرير اللغة العربية امر يتكفل به المتصفح, و لكن ما اقصده هو وضع فقرات عربية تكون مصفوفة الى اليمين و يكون اتجاه سير النص من اليمين الى اليسار. او بمعنى آخر اضافة خصائص direction: rtl; text-align: right الى الفقرات المكتوبة باللغة العربية تلقائيا.

بدأت بعمل fork من مشروع showdown على github و اضفت اليه بعض التعديلات في محاولة لاضافة دعم لاظهار الفقرات العربية من اليمين الى اليسار

الكود منشور هنا:

http://github.com/hasenj/showdown

و هو في مرحلته الاولية, و هناك احتمال لوجود بعض الاخطاء و الـ bugs و لكنه على ما اظن بداية جيدة

هناك مثال حي استضافه صديقي العزيز عمر محمد على موقعه مشكورا :)

http://omar84.com/docs/rtlsd/showdown-gui.html

image

في هذه المرحلة اود اصلاح اي خلل في الكود,

فيما بعد احب ان اضيف نفس الدعم الى محرر wmd في مربع الادخال ايضا و ليس فقط مربع الاخراج

بعدها اضافة التعديلات نفسها الى النسخة الاصلية بلغة perl و الى النسخ المشهورة من اللغات الاخرى مثل python, c#, ruby, الخ

لكن المشكلة الحقيقية ليست هنا, بل في تبني هذه الاضافة من قبل المواقع الشهيرة اللتي تدعم الكتابة و النشر بلغة الترميز هذه .. عندها فقط يمكن ان نقول ان فكرة المشروع نجحت.