المشكلة / الدافع
عند تحرير المشاركات التي تحتوي على الكثير من المعادلات الرياضية، غالبًا ما يكون من الصعب تحديد المصدر الدقيق للمعادلة المعروضة في محرر Markdown.
في المشاركات الطويلة التي تحتوي على العديد من التعبيرات المضمنة \…\\ أو كتل العرض المتعددة $$…$$، يصبح سير العمل كالتالي:
تحديد خطأ في المعاينة ← البحث يدويًا في نص Markdown الخام ← التعديل ← إعادة فحص المعاينة
يكون هذا مؤلمًا بشكل خاص للتعديلات الصغيرة (علامة ناقص مفقودة، فهرس خاطئ، تعديل بسيط للمسافة، إلخ)، ويزداد سوءًا كلما كبرت المشاركات.
السلوك المقترح
في المحرر:
- النقر على عنصر معروض أو تحديده في جزء المعاينة يجب أن:
- يقوم بالتمرير إلى مصدر Markdown الخام المقابل، و
- يضع المؤشر داخل (أو يحدد) النص المصدري الذي أنتج هذا العنصر.
سيعمل هذا بشكل جيد بشكل خاص من أجل:
• الرياضيات (…، $$…$$)
• الاقتباسات
• القوائم
• الروابط
• العناصر المنسقة الأخرى
تعتبر الرياضيات هي حالة الاستخدام الأكثر إقناعًا، ولكن السلوك سيكون مفيدًا بشكل عام.
لماذا يختلف هذا عن مزامنة التمرير
الأمر لا يتعلق بالتمرير المتزامن أثناء الكتابة.
إنه انتقال من المعاينة ← إلى المصدر، مشابه في الروح لـ SyncTeX في محررات LaTeX:
“أنا أنظر إلى هذا الشيء المعروض - أرني من أين أتى.”
اتجاه التنفيذ المحتمل (مستوى عالٍ)
أثناء المعالجة، يمكن لعقد الإخراج أن تحمل بيانات وصفية خفيفة لتعيين المصدر (على سبيل المثال، data-sourcepos="start:end" أو ما شابه).
في معاينة المحرر:
- عند النقر / التحديد، يتم الانتقال صعودًا في شجرة DOM إلى أقرب عقدة تحتوي على بيانات وصفية لموضع المصدر.
- استخدام واجهة برمجة تطبيقات المحرر الحالية لتعيين نطاق التحديد في المحرر الخام والتمرير إليه.
هذا النوع من تعيين المصدر موجود بالفعل من الناحية المفاهيمية في أدوات CommonMark، وتعتبر كتل الرياضيات على وجه الخصوص مرشحين طبيعيين لأنها مميزة بالفعل كرموز مميزة.
لماذا سيكون هذا ذا قيمة
- تكرار أسرع للمحتوى الغني بالرياضيات
- يقلل من العبء المعرفي عند تحرير المشاركات التقنية الطويلة
- يجعل جزء المعاينة تفاعليًا حقًا، وليس مجرد سلبي
- يتوسع جيدًا ليشمل عناصر منسقة أخرى تتجاوز الرياضيات
يسعدني تقديم عرض توضيحي قصير بصيغة GIF إذا كان ذلك سيساعد في توضيح التفاعل.