مكتبة aared العربية تعرض ملفات Word وExcel وPowerPoint في المتصفح دون أن ينقلب اتجاه العربية
نشر المطوّر عبدالحميد عيد مكتبة اسمها aared تعرض ملفات Word وExcel وPowerPoint داخل المتصفح، مع دعم سليم للعربية. والمكتبة برخصة Apache 2.0، ومنشورة على npm باسم @aared/viewer. وتذكر صفحة المشروع على مرتكز اسمًا مختلفًا لصاحبه، لكن حقوق المستودع نفسه مسجلة باسم عبدالحميد عيد.
والمشكلة التي تعالجها معروفة لكل من عرض ملفًا عربيًا في المتصفح: اتجاه الفقرة ينقلب، أو تنكسر السطور في غير موضعها. والسبب أن أغلب العارضات ترسم الملف على canvas، وهو سطح يحوّل النص إلى ما يشبه الصورة، فيضيع اتجاه الفقرة وتظهر العربية مقلوبة أو مقطعة.
أما aared فترسم على DOM وSVG، ولا تستخدم canvas على الإطلاق. وبذلك تُترك مهام تشكيل الحروف واتجاه النص المختلط، أو bidi، واختيار الخط البديل للمتصفح نفسه، وهو يؤديها بشكل صحيح أصلًا.
ويجري العمل على مرحلتين. في الأولى يفكّ worker حزمة OOXML، وهي في حقيقتها ملف مضغوط يحتوي على ملفات XML، ويحوّلها إلى نموذج موحد. وفي الثانية يحوّل راسم خاص بكل صيغة هذا النموذج إلى عناصر في الصفحة. ويقول المشروع إن اتجاه الفقرة من اليمين إلى اليسار يعمل في الصيغ الثلاث، وإنه جُرّب على ملفات عربية حقيقية.
ويكتب المشروع حدوده بنفسه: اختيار الخط يؤثر على كسر السطور، وتقسيم صفحات DOCX لا يطابق Word تمامًا، وملفات PDF خارج نطاقه. وهو لا يزال صغيرًا جدًا، بنجمتين على GitHub، فهو أقرب إلى كود يُقرأ ويُجرَّب منه إلى dependency ناضجة.
ودلالة المشروع أن الحل لم يكن براعة في الكود، بل قرارًا معماريًا واحدًا: ترك المتصفح يؤدي ما يتقنه بالفعل.