نبذة حول RichStyle
مكتبة RichStyle هي إطار عمل HTML/CSS متعدد اللغات، ومبسط Minimalism، وموجه بالكائنات object-oriented، ومبني على النمذجة model-driven، ومنشور كحزمة دِبيان Debian.
تنطوي هذه المكتبة على ثلاث ميزات رئيسية:
- من وجهة نظر المستخدم:
- قابلية الاستخدام: انظر قياس قابلية الاستخدام حسابياً.
- الأداء: صممت لتكون أسرع إطار عمل ممكن لـ HTML/CSS، وتولِّد أسرع صفحات ويب ممكنة.
- من وجهة نظر المطور:
- قابلية الصيانة: إطار عمل لـ HTML/CSS محكم البناء وموجه بالكائنات.
انظر وثائق مكتبة RichStyle.
- قابلية الصيانة: إطار عمل لـ HTML/CSS محكم البناء وموجه بالكائنات.
المهمة
هل فكرت في استخدام HTML كبديل لصيغ الوثائق المتداولة في بيئة سطح المكتب أمثال MS-Word وغيرها من معالجات النصوص؟
فصيغة HTML تتفوق على صيغ التطبيقات المكتبية بما يلي:
- المرونة: فصل المحتوى عن التنسيق.
- التوافق مع بيئة النشر العالمية (الويب).
- عدم الحاجة لتطبيقات خاصة لاستعراضها وقراءتها: يكفي وجود متصفح حديث نسبياً.
- تنسيق مخصص لكل وسط من وسائط العرض على حدة: كالشاشة، الورق، التلفاز… الخ.
- الجهات المشرفة على تطويرها: طيف واسع من الشركات والمؤسسات، بما فيها شركة مايكروسوفت، الشركة المطورة لتطبيقات MS-Office الشهيرة.
إذن، ألا تصلح لغة HTML معياراً لتبادل الوثائق، إلى جانب دورها المعهود والمشهود في بث المعلومات ونشرها عبر الإنترنت في كل بقاع الأرض؟
لطالما عُرفت لغة HTML بوصفها تقنية للويب، أكثر من كونها نسقاً أو نوعاً من أنواع الملفات. تستخدم هذه اللغة في تطبيقات الويب، وليس في بيئة سطح المكتب. إذ لا تزال ثمة عدة قيود تعترض السبيل نحو وضع هذه الرؤية موضع التنفيذ.
- قابلية النقل: تبدو قابلية النقل إحدى أهم هذه القيود. إذ لا يمكن حفظ ملف HTML غني في ملف واحد مستقل. إذ سيتم تخزين الصور وملفات CSS، وملفات جافا سكريبت كملفات مستقلة في دليل فرعي.
كحل، يمكن ضغط ملف HTML وتوابعه في ملف مضغوط واحد.
ثمة حل آخر، يخص الصور بالدرجة الأولى، وهو اللجوء إلى طريقة DataURL في تضمين الملفات. - الحماية بكلمة مرور: فلا يمكن حماية ملف HTML بواسطة كلمة مرور.
الحل هنا أيضاً يتمثل بملف مضغوط كما أشرنا آنفاً. - قابلية الطباعة: لا تزال CSS غير ناضجة بما فيه الكفاية في مسألة الطباعة، فلا يمكنك تعيين وتنسيق أرقام الصفحات وهوامش الصفحات في المتصفحات الحالية، بالرغم من توفر معايير لمثل هذه المتطلبات في مسودات معايير CSS3.
صيغ بيئة سطح المكتب | صيغة HTML | |
---|---|---|
المرونة: فصل المحتوى عن التنسيق | ✕ | ✓ |
التوافق مع بيئة النشر العالمية (الويب) | ✕ | ✓ |
عدم الحاجة لتطبيقات خاصة لقراءتها | ✕ (تحتاج…) | ✓ (متصفح فقط) |
تنسيق مخصص لكل وسط من وسائط العرض على حدة (الشاشة، الورق، التلفاز… الخ) | ✕ | ✓ |
عدد الجهات المشرفة على تطويرها | ✕ محدود | ✓ كبير جداً |
قابلية النقل | ✓ | ✕ |
الحماية بكلمة مرور | ✓ | ✕ |
إعددات الطباعة | ✓ | ✕ |
الرؤية
توفر مكتبة RichStyle صيغة قياسية للوثائق تدعى «.web
»، وهي ببساطة ملف HTML5 نظيف مرتبط بملفات CSS معدة مسبقاً.
يمكن أن تمثل هذه المكتبة حلاً نموذجياً لـ:
- عرض وثائق لغة الترميز العكسية للنصوص Markdown (ملفات
.md
/.markdown
) كملفات HTML. - تنسيق ملفات ePub.
تضيف هذه المكتبة قالباً يدعى «Web-Document.web
»، إلى مدير الملفات Nautilus، ويكون هذا القالب مرتبطاً بملفات CSS مركزية يتم تثبيتها مع المكتبة.
يسعى هذا القالب لتحقيق ثلاثة أهداف رئيسية:
- دعم المتصفحات: نسق الملفات الناتجة يمكن قراءتها على أي متصفح دون الحاجة لوجود التطبيق نفسه لقراءتها، فالملفات الناتجة ليست في حقيقتها وجوهرها إلا ملفات HTML.
- التناغم مع مظهر النظام: سيتم ضبط الخطوط والألوان المستخدمة في الملف الناتج تبعاً للخطوط والألوان المحددة للنظام المضيف.
أي أن المستخدم سيوكِل مهمة تنسيق الوثائق الناتجة إلى ملفات CSS الخاصة بمكتبة RichStyle التي ستضمن بدورها اتباع الوثيقة للمظهر العام للنظام ككل، وهذا يضمن بالتالي تحقيق أعلى درجات التوازن بين غنى المحتوى Richness وتناسقه Consistency. - نسق All-in-One: ومرة أخرى، فبفضل CSS يفترض أن تكون قادراً، في المستقبل القريب، على قراءة الوثيقة نفسها من زوايا مختلفة، أي في وسائط إعلام مختلفة، دون الحاجة لإعادة صياغة الملف من أجل كل وسيلة من وسائل الإعلام على حدة؛ فعرض للملف كصفحة الويب، وآخر للوسط الطباعي (الورق)، وثالث لأجهزة العرض Projectors، وهلم جراً.
يمثل محرر النصوص GWrite —نظرياً— التنفيذ الأقرب لرؤيتي لـ محرر النصوص المثالي، محرر نصوص يستند إلى HTML/CSS، بوصفه واجهة أمامية لمكتبة RichStyle.
وقد طورتُ نسخة مخصصة من مكتبة TinyMCE تدعى rsTinyMCE، كنموذج توضيحي لبيان هذه الرؤية وإيضاحها قدر المستطاع.
الجوانب التي لم أتمكن من تمثيلها في هذا النموذج، تم توضيحها في هذه اللقطة المزيفة.
الفوارق، كما ترى، هي:
- مربع اللغة النشطة: يضيف الخاصية
lang=""
إلى أي واصفة أو سلسلة نصية معينة. وستتولى مكتبة RichStyle مهمة تحديد اتجاه النص وفقاً للغة المختارة. - طرق العرض: Screen, Print, Source, Split.
- حقل البحث «Find»: يجب أن يظهر في شريط الأدوات ذاته، كما هي الحال في فيرفوكس، وليس كإطار منبثق pop-up window.
القيم
- البرمجة بالكائنات OOP:
- الواصفات Tags تُستخدم لتمثيل كائنات المحتوى فقط.
- سمات الواصفات Tags تُستخدم لتمثيل سمات المحتوى.
- قواعد CSS المستخدمة تمثل سمات لطريقة عرض المحتوى.
- الأحداث التابعة للواصفات يتم تمثيلها —إن وجدت— بواسطة أحداث jQuery، وليس بواسطة أحداث HTML الطبيعية.
- الأولوية في التقنيات المستخدمة: CSS، ثم jQuery، ثم JavaScript، ثم PHP.
هذا يعني أن كل شيء يمكن تنفيذه بواسطة CSS، يجب أن يتم تنفيذه بواسطة CSS، وإلا، سيتم تنفيذه بواسطة jQuery. الخيار التالي هو JavaScript. وتبقى التقنيات من طرف المزود، أمثال PHP، الخيار الأخير. - تحاشي الأصناف الاصطناعية classes والواصفتين
div
وspan
قدر المستطاع، فـ واصفات HTML الخام يجب أن تكون كافية. - الإيقونات المستخدمة معنونة —قدر المستطاع— وفق معايير منظمة الترميز الموحد Unicode.
- لا يوجد تكرار: أي رابط/عنصر في الصفحة الواحدة يجب أن يظهر مرة واحدة فقط.
التوافقية
مكتبة RichStyle متوافقة مع المتصفحات التالية:
- Arora 0.11.0
- Epiphany 3.28.1
- Firefox 62.0
- Chromium 69.0.3497.81
- Falkon 3.0.0
- Konqueror 5.0.97
متوافقة أيضاً مع PrinceXML 11.