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

كان أمامي عدّة تحدّيات هنا:
أولاً: أردت أن يبقى سياق العمل عند الفريق كما هو، لم أرد أن تضيف الواجهة عبءاً على الفريق لتنسيق الملفات بطريقة ما، أو تغيير هيكلية المشروع.
ثانياً: أردت أن أضيف دعم اللغة العربية للمستودع نفسه دون تغيير هيكلية الملفات.
ثالثاً: أردت أن أسمح بتشغيل هذا المشروع من GitHub Pages مباشرةً دون الحاجة لاستضافته في مكان مختلف، كي لا أضيف على فريق إتقان المزيد من العمل.
هكذا حللت المشاكل:
أولاً: اعتمدت على GitHub Actions لإنشاء ملفات Manifest و Index للملفات النصيّة الموجودة في المستودع، بهذه الطريقة، يمكن للبرمجية أن تعرف ما يوجد من ملفات في المستودع حتى ولو أضيف ملفات جديدة له، يتم تشغيل هذه الActions عند كلّ Push للمستودع، ويتم استخدامها في الواجهة لمعرفة أسماء الملفات ومحتواها في ميزات التصفح (الشريط الجانبي الذي يظهر قائمة الصفحات) والبحث
هكذا لا داعي لتغيير بنية المستودع أو القلق بخصوص توافق الواجهة مع تغييرات الهيكلية التي قد تجري مستقبلاً
ثانياً: اعتمدت اللاحقة - AR بعد اسم الملف الأصلي (الإنجليزي) للربط بين الملفين عند تغيير اللغات، وبهذه الطريقة أيضاً نحافظ على انتظام الملفات في المستودع ولا نحتاج لإضافة هيكلية مجلدات جديدة لتخزين ملفات اللغة العربية، يمكن للملف العربي والإنجليزي التواجد في نفس المسار.
ملاحظات بسيطة أثناء العمل على هذا المشروع
واجهتني مشكلة أثناء العمل على هذا المشروع بخصوص الJump Links الموجودة داخل الملفات، وهي منسّقة بطريقة مناسبة لأوبسيديان لكنّها "تحيّر" في حال أردت عرض ملف الماركداون في صفحة ويب (طرق مختلفة للتعامل مع نفس الفكرة)، لذا أنشأت دالة بسيطة تقوم بتحويل هذه الروابط لنمط يمكن استخدامه في صفحة ويب دون التعديل على الملف الأصليّ.
في الوقت الحاليّ، بما أنّ المستودع ما زال صغير الحجم، لا بأس في طريقة تطبيق البحث الذي استخدمته: حيث يقوم بعمل Index من خلال GitHub Actions ثم يستخدم هذا الملف في الواجهة، لكن مع تضخّم حجم المشروع قد يصبح حجم هذا الملف كبيراً جداً ولا يكون من السليم تحميله واستخدامه كما يجري حالياً. لكن هذا الحلّ مقبول برأيي حالياً.
مستقبل هذا المشروع
بسبب حماسي للعمل على هذا المشروع أردت الانتهاء منه بالكامل قبل التواصل مع أحدٍ من الفريق لمعرفة رأيهم فيه، لذا لا أدري إن كان مناسباً لدمجه في المشروع الأساسيّ بهذا الشكل أم لا، لكن يمكن الوصول للنسخة التي عملت عليها من خلال الرابط التالي وهذا هو الbranch الذي أعمل عليه اللغة العربية وواجهة للعرض من المتصفح
وقد أنشأت PR فيه ملخّص لما ذكر في هذا الموضوع في غيتهب على المستودع الرئيسي: هنا