نعم، أعتقد أن هذا هو الخيار الأفضل على الأرجح. لقد بدأت العمل عليه في يونيو 2020، لكنه انتهى به الأمر ليكون شاقًا للغاية، واضطررت للانتقال إلى مشاريع أخرى. كان لدي نهجان للسماح بعناوين upload:// في وسوم <img… ولا يعتبر أي منهما مثاليًا. من ملاحظاتي:
التنفيذ 1:
في خط أنابيب الماركداون، قم بتحليل محتوى كل html_block (من خلال إساءة استخدام مكتبة xss.js قليلاً)، ومعالجة أي وسوم صور تحتوي على سمات src من نوع upload://.
المزايا: كل شيء يحدث في خط أنابيب الماركداون، ويتم هذا المعالجة فقط على رموز html_block.
العيوب: نوعًا ما إساءة استخدام أداة التنظيف xss.js. قد لا يكون محلل HTML5 مثاليًا.
يمكن تحسين هذا الخيار باستخدام تطبيق DOM جافا سكريبت متوافق مع المعايير (مثل jsdom) على الخادم، لكن يبدو ذلك ثقيلًا جدًا.
التنفيذ 2:
السماح لجميع سمات src من نوع upload:// بالمرور عبر خط أنابيب الماركداون بالكامل، ثم استبدالها لاحقًا. على جانب العميل، هذا في الواقع بسيط جدًا - كنا نستبدل عناوين upload:// بشكل غير متزامن بالفعل بعد الطهي. أما على جانب الخادم، فإن هذا يتطلب خطوة معالجة إضافية باستخدام Nokogiri.
المزايا: المحلل متوافق مع معايير HTML5.
العيوب: تنفيذ مختلف على جانب العميل/الخادم، مما يجعل خط الأنابيب أكثر تعقيدًا قليلاً.
أعتقد أن الخيار 2 هو المسار الصحيح على الأرجح. سنحتاج بعد ذلك إلى تحديث وظيفة pull_hotlinked_images للحفاظ على وسوم <img دون استبدالها بتنسيق الماركداون. آمل أن أتمكن من العثور على وقت للعودة إلى هذا قريبًا ![]()