كثيرًا ما يطرح مطورو التطبيقات القرآنية هذا السؤال سعيًا للوصول لأفضل حل يعرض المصحف رقميًا داخل التطبيقات والمواقع بطريقة مطابقة 100% للمصحف المطبوع (خصوصًا مصحف المدينة المنورة).
يرى الفريق الأول أن الخيار الأسلم هو الاعتماد على صور الصفحات، لكن هذا الخيار يجعل حجم التطبيق كبير جدًا وصعب التفاعل.
في حين يرى الفريق الآخر أن أفضل مسار الآن لأي تطبيق هو استخدام نسخة دقيقة من خط QCF الصادر عن مجمع الملك فهد لطباعة المصحف الشريف خصوصًا لو كان احتجنا في التطبيق للتفاعل على مستوى الكلمة.
فخط QCF يعتمد على ترميز خاص يربط كل موضع في المصحف برمز رسومي محدد، بحيث يحاكي تخطيط مصحف المدينة (أماكن الكلمات، أرقام الآيات، علامات الوقف، توزيع الأسطر والصفحات) بدقة لذا فإن استخدام أي خط حفص تقليدي (Unicode-based) لن ينتج تخطيطًا مطابقًا للمصحف المطبوع، لأنه سيعرض النص كسلسلة حروف معيارية دون الالتزام بتموضع الصفحات الثابت.
وعليه، نحتاج لنسخة دقيقة من خط QCF مع قاعدة بيانات محكمة تربط كل آية وموضعها بصفحة وسطر محدد لكل طبعة من طبعات المصحف (1405، 1422، 1439)، لأن لكل طبعة فروقًا طفيفة في التوزيع والضبط.
فالحل هنا يجب أن يكون مصحوبًا بقاعدة بيانات Layout دقيقة ومضبوطة للقرآن الكريم على مستوى:
- الصفحة: تحدد بداية ونهاية كل صفحة والآيات داخلها مع دعم الطبعات المختلفة
- السطر: تقسيم الصفحة إلى 15 سطرًا مع توزيع الكلمات بدقة كما في المصحف
- الكلمة: موقع كل كلمة داخل السطر وربطها بالآية
بدون هذه الطبقات الثلاث لن يكون التطابق دقيقًا كما في المثال التالي:

إذَا الحلول المتاحة للاستخدام:
- العرض كصور صفحات: هذا الحل مطابق 100% للمصحف المطبوع لكن ينتج عنه حجم كبير واستهلاك ذاكرة ولا يتيح التفاعل
- العرض كنص JSON (Unicode): هذا الحل سهل وقابل للبحث لكنه غير مطابق بصريًا للمصحف المطبوع
- استخدام QCF بدون قاعدة بيانات مضبوطة بدقة: هذا الحل يوفر شكل جيد لعرض النص لكن قد ينتج مشكلات في المحاذاة واختلاف في بعض الصفحات
- QCF + Layout دقيق (الحل المثالي نظريًا) هذا الحل يوفر تطابق كامل مع أداء جيد وتفاعل عالي لكنه غير متاح كمعيار موحد مفتوح المصدر حتى الآن
الحلول المعتمدة في المشاريع
فيما يلي بعض الحلول المستخدمة في المشاريع الفعلية:
تطبيق open-quran-view
اعتمد هذا التطبيق على الواجهة البرمجية Quran Foundation API مع عرض 15 سطر لكل صفحة وتوليد JSON عبر scripts وهذا الحل يدعم TypeScript وnpm packageو React view وسيدعم React Native قريبًا
تطبيق Java-Quran-Web
اعتمد هذا التطبيق على ملف data/quran_layout.csv يحتوي على تنسيق 15 سطر للصفحة.
تطبيق وحي
لا يستخدم الصور ووصل لمستوى عالٍ في ضبط العرض حيث يوفر 4 واجهات لحفص منها نسخة 1439 الملونة وواجهة لورش
تطبيق مناجاتك
في البداية اعتمد المطور على عرض نصوص JSON، ثم صور لكل صفحة فأصبح حجم التطبيق كبير جدًا، ثم استخدم Quran Library، وحاليًا أجرى إعادة بناء كاملة باستخدام نص مضبوط بخط مجمع الملك فهد وتقسيم الآيات للتحكم الفردي
مبادرة لإنتاج محرك عرض قرآني مفتوح المصدر
حتى لو نجح كل تطبيق بمفرده في ضبط العرض بدقة ما نحتاجه هو توحيد الجهود والمبادرة في إنتاج متصفح قرآني مفتوح المصدر يضع الحل بين أيدي المطورين.
فالمشكلة الحقيقية في غياب معيار موحد مفتوح المصدر يجمع العناصر الأربعة معًا:
- نسخة دقيقة من خط QCF
- Layout Mapping مضبوط (صفحة ، سطر ، كلمة)
- Dataset دقيق للكلمات
- دعم واضح ومنفصل للطبعات المختلفة
وهنا يأتي دورنا في المجتمع لتوحيد هذه الجهود، والإجابة على التساؤلات التالية:
- هل نبدأ بطبعة واحدة 1439 كنموذج أولي MVP؟
- هل نوحد قاعدة بيانات الضبط layout أولًا قبل بناء أي واجهة عرض؟
- هل هناك Mushaf layout dataset دقيقة يمكن البناء عليها؟
- هل نبني محرك عرض مرجعي كتنفيذ قياسي؟
- هل نطلق GitHub Organization مخصص للمشروع؟
- كيف نتعامل مع مسألة الترخيص بشكل واضح منذ البداية؟
بانتظار آرائكم ومقترحاتكم لتعزيز هذا النقاش وتحويله لمسار عملي يوفر حل مشترك يخدم جميع التطبيقات القرآنية.
ختامًا: نود الإشارة لأن هذا النقاش دار في إحدى قنوات مجتمعنا على واتساب، ورأينا أهمية نشره هنا بشكل عام بهدف الأرشفة ومراكمة المعرفة ليستفيد منه الجميع وليكون مرجعًا مفتوحًا يمكن الرجوع إليه وتطويره. ونتقدم بجزيل الشكر لكل من ساهم فيه: