سِجِل يَومي: مشروع مفتوح المصدر، ومبادرة لنشر وحفظ المحتوى العربي على الإنترنت!

dailylogsheaderbrand

المشاهدة الحية مصدر الملفات

# المشكلة

في بداية مارس الماضي أردت التخطيط لما أود تعلمه خلال الستة أشهر التالية. في العادة أبدأ بالكتابة على الورق، ,ومن ثم أقوم بتحويل ما كتبته إلى شيء رقمي أراه أمام عيني وأتفاعل معه بالفأرة. أردت أن أصمم صفحة ويب HTML بسيطة لمتابعة التقدم اليومي على هيئة لائحة مهام  (Todo list). فعلت ذلك، ولكنني أردت تطوير الصفحة إلى مستوى أبعد حتى أتمكن من تسجيل ملاحظاتي اليومية أيضًا في نفس الصفحة وليس فقط وضع العلامات على الأعمال أو المهام المنجَزة. فعلت ذلك باستخدام اللغات الثلاثة الأم (HTML – CSS – JavaScript) دون اللجوء لأي من إطارات العمل المتاحة لأنها صفحة واحدة وصغيرة ولا تستدعي إدخال التعقيد عليها من خلال استخدام أداة أو إطار عمل حتى لو كانت هذه الأداة أو هذا الإطار سيوفر عليّ بعض الوقت والجهد.

في الأسبوعين التاليين، واجهت المشكلة; بدأت الصفحة في التضخم، وبدأ البطء يسيطر على محرر النصوص في كل مرة أقوم بفتح الصفحة لتحديثها وإضافة المزيد من المحتوي باستخدام أكواد HTML! تخيل أن أحد يذبحك على البطيء (عذرًا على التشبيه) ولكن هذا ما فعلته بنفسي وندمت على ذلك!

# الحل

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

في القائمة التالية تلخيصًا للنتيجة النهائية بعد تنفيذ بعض الحلول لتحسين تجربة التدوين اليومي على تلك المنصة الصغيرة! وأقول “منصة” لأني أراها كذلك بالفعل! 😛

  • تصميم بيئة عمل كاملة لتسهيل عملية تصميم وتطوير الصفحة في الوقت الحالي وفي المستقبل. يمكنك تخمين ماذا استخدمت بسهولة.. لم تصل بعد؟ Webpack تكفل بالإهتمام بتلك المهمة الشاقة!
  • تخطيط الملفات وتنظيم الأكواد بشكل منطقي يجعل من السهل فهم كيف تسير الأمور داخل ملفات المشروع.
  • استخدام أداة/معالج PostCSS لتسهيل التعامل مع كتابة أكواد CSS ولتحسين عملية تطوير مظهر الصفحة بسهولة دون الحاجة لكتابة وتكرار الكثير من الأكواد بلا حاجة.
  • استخدام HTML template engine لتسهيل التعامل مع كتابة وتطوير أكواد الـ HTML. كانت لي تجربة جيدة مع Pug.js ولم أتردد في إعادة استخدامه. أكثر ميزة يمتلكها هو أنه يقلل من وقت كتابة أكواد الـHTML ويحمل عنك هم هذه العملية ويوفر لك الفرصة على التركيز على المحتوى وليس على الكود بالإضافة إلى سرعة إتمام المهام من خلاله، لكنه صعب في الإستخدام قليلًا إذا كنت قادمًا من تقنيات أخرى، حيث أنه يتبع نظام صارم في محاذاة الاكواد على الأسطر، مسافة واحدة خاطئة أو منسية لتنهار الصفحة بأكلمها.
  • الإنتقال لكتابة وتحرير النصوص باستخدام Markdown وليس بشيفرات HTML التي كادت أن ستصيبني بجلطة حادة! هذه الميزة يوفرها Pug.js وهذه نقطة تحسب له أيضًا ♥.
  • توصيل المشروع بـ Git وربطه بـ GitHub واستضافته على Netlify. هذه كانت العملية الأسهل على الإطلاق!

لائحة المهام المتبقية لهذا المشروع

  • تعريب الصفحة للتمكن من نشر المحتوى باللغة العربية بصورة صحيحة.
  • ربط لوائح المهام في أعلى الصفحة بقاعدة بيانات مع امكانية التفاعل معها من المتصفح. ستتمكن من تعديل/اضافة/حذف المهام بصورة مباشرة وفورية من المتصفح.

# مفتوح المصدر؟

أجد أنه من المضحك أن أستخدم هذا المصطلح، بجد أنا لا أمزح! 😀 أولًا لأن هذه هي المرة الأولى التي أستخدمه وثانيًا لأن المشروع صغير بحق كي أطلق عليه “مشروع مفتوح المصدر”! ولكن لا بأس دعني أضحك شوية على نفسي يا أخي. 😀 وفقًا لذلك يمكنك تحميله واستخدامه أو تطويره وتطويعه لأي شيء أو أفعل به ما تشاء، لن يمنعك أحد.


# مبادرة بدون إسم بعد

منذ عدة أيام وبعد خبر وفاة شخصية معروفة وسط مجتمع المدونين، الأخ يوغرطة بن علي رحمه الله، نشر المدون الإستاذ عبد الله المهيري -جزاه الله خيرًا لحرصه ومجهوده العظيم في دعم مجتمع التدوين والمدونين ونشر الوعي اللازم لاستخدام الشبكة- تدوينتين، الأولى كانت لعرض الأفكار وطلب فيها من القراء اقتراح حلول وأفكار لأرشفة المدونات لحفظها من الضياع والحذف بعد أن يرحل صاحبها. والثانية عرض فيها 5 وسائل وحلول تساعد في هذا الأمر، بالإضافة لعدة نصائح هامة لنجاح عملية أرشفة الموقع واستمرار ظهور وتواجد محتواك لفترة أطول على الشبكة.

كتبت تعليق هناك في التدوينة الأولى واقترحت حلًا باستخدام خدمات مثل Github وGitbook وغيرها (مواقع لرفع وحفظ الملفات من الضياع وترتبط بنظام Git لمتابعة التغيرات التي تطرأ على تلك الملفات) ومن ثم استضافة تلك الملفات على منصات استضافة سريعة وتقدم خدمات أخرى مجانية كامكانية استخدام المراسلة من خلال صفحة ثابتة دون الإتصال بسيرفر كـ Netlify (منصة متطورة لاستضافة مشاريع الويب). ومن مكاني هنا أرى أن ذلك الإقتراح يعد واحد من أحد الخيارات السهلة – للمُطوّرِين غالبًا؟ – والناجحة لعرض المحتوى على الإنترنت بشكل حر ومجاني تمامًا دون الإرتباط بمنصات نشر المحتوى والتي لا يعلم أحد إلى متى سوف تستمر في التواجد وعرض محتواك إلا الله الحي الذي لا يموت.

لو لم تكن مطوّر ويب، كيف كنت ستتمكن من استخدام تلك الأدوات بلا مشكلة أو خوف، بل وتتحمس لذلك؟
؟

نظرت إلى هذا الإقتراح بعد ذلك ولكنّي وجدته السهل الممتنع! لماذا أقول هذا؟ لأنني أتعامل مع الأكواد البرمجية دائمًا ومع سطر الأوامر بشكل شبه يومي، بالتالي لا أحمل هم تلك العملية، ولكنّي حين سألت نفسي السؤال بالأعلى أدركت كيف أنها ستكون عملية صعبة جدَا من منظور شخص ليس لديه فكرة عن التعامل مع أبسط كود برمجي أو حتى رؤية شاشة سطر الأوامر، لأنه حتى في حالات نادرة أعتقد أنه سيحتاج إلى التعامل مع الأكواد ومع سطر الأوامر للأسف! قد يصاب أحدهم بالفزع جراء رؤيته لشاشة سطر الأوامر للمرة الأولى أصلًا!

ولأن الأولىَ في هذه الفترة هو توفير الفرصة للناس “العاديين” -غيرمطوِّري الويب- لأستخدام تلك الأدوات بسهولة وسلاسة وبدون تعقيد لنشر محتوياتهم وكتاباتهم وملفاتهم على منصات شخصية حرة تمامًا ومجانية دون الإرتباط بخدمات مدفوعة أو معقدة أو غير دائمة كما هي المشكلة دائمًا، لذلك سأتطوع بالعمل إما بمفردي أو مع فريق من المتطوعين، لللقيام بالتالي:

مرحلة أولى:

  1. توفير صفحات ويب صغيرة وسريعة بقوالب جاهزة ومعربة دون الحاجة لإستخدام سطر الأوامر والتعامل مع الأكواد البرمجية!
  2. تعليم كيفية تحرير المحتوى بداخلها بشكل مباشر بسهولة وبغير تعقيد.
  3. شرح نشر الصفحة على الشبكة بسحبة واحدة من الفأرة من خلال استخدام خدمات Github pages و Netlify وعدة خدمات أخرى إذا أراد المالك نشر الصفحة بأكثر من مكان.
  4. شرح كيفية الإحتفاظ بنسخ متعددة منها.
  5. شرح كيفية ربطها بنطاق مدفوع.

مرحلة ثانية متقدمة:

  1. توفير مدونات كاملة مفتوحة المصدر تحتوي على نموذج مراسلة وخلاصات RSS وصفحات ثابتة ونظام محكم يعرض التدوينات الأخيرة مع صندوق للتعليقات وأزرار النشر على منصات التواصل وكذلك فلترة للتدوينات حسب الوسوم. كل ذلك دون الحاجة إلى الإتصال بسيرفر وقاعدة بيانات.  وذلك من خلال استخدام ما يسمى: Open Source Static Site Generators. أمثلة على ذلك بالعربية؟ (مثال 1 يستخدم Gatsby.js الذي يوّلد مدونات أحادية الصفحة لا تجعل المتصفح يقوم بإعادة تحميل الصفحات. مثال 2 يستخدم Jekyll، هذا ما وجدته حتى الآن بالعربية. )
  2. تعليم كيفية التعامل مع تحرير وتوسيع المدونة.
  3. شرح نشر المدونة على الشبكة باستخدام خدمات عديدة.
  4. شرح كيفية الإحتفاظ بنسخ متعددة منها.
  5.  شرح كيفية ربطها بنطاق مدفوع.
  6. شرح الحد الأدني اللازم معرفته عن نظام Git للتمكن من  حفظ وتعديل ونسخ ملفاتك ومتابعة التغييرات والتعديلات.
  7. شرح الحد الأدنى اللازم معرفته للتعامل مع سطر الأوامر للتمكن من تحرير المدونة من جهازك الشخصي.

كل مرحلة  بالتأكيد ستحتاج إلى موضوع خاص بها للحديث عن خط السير وتفاصيل أكثر عن العملية، وسأخصص مدونة منفردة لهذا الأمر برمته.

حتى الآن، وآخر ما يدور بذهني هو أنني أنوي جعل هذا الأمر كمبادرة يمكن للجميع أن يشارك فيها ويساهم بما يملك من معرفة وخبرات.

وبالتالي سأحتاج للدعم!

  • الترويج: سأتشرف بترويجك للمبادرة عندما تبدأ ونشرها على نطاق واسع.
  • متطوّع: مطوّر ويب (عدد مفتوح)
  • متطوّع: معرّب/مترجم (عدد مفتوح)

تواصل معي من خلال قسم التعليقات، أو راسلني بشكل مباشر من خلال البريد الشخصي: ahmedhosna95@gmail.com

واعرض عليّ بقسم التعليقات أسماء للمبادرة لجعل الأمر رسمي أكثر.

هذا كل شيء. شكرًا لوصولك إلى هنا!

4 أفكار على ”سِجِل يَومي: مشروع مفتوح المصدر، ومبادرة لنشر وحفظ المحتوى العربي على الإنترنت!

اترك رداً على يونس بن عمارة إلغاء الرد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google photo

أنت تعلق بإستخدام حساب Google. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s