لدي سؤال حول كيفية تقديم الجواب. لقد لاحظت أن العديد من أكواد HTML يبدو أنها تعمل في معاينة الإجابة ولكن لا تظهر الإجابة النهائية. لماذا يتم حظر هذه؟

لدي سؤال حول كيفية تقديم الجواب. لقد لاحظت أن العديد من أكواد HTML يبدو أنها تعمل في معاينة الإجابة ولكن لا تظهر الإجابة النهائية. لماذا يتم حظر هذه؟
Anonim

الإجابة المختصرة هي أننا نستخدم مكتبتي Markdown مختلفتين لتقديم المعاينة والإجابة النهائية. هاتين المكتبات المختلفة تعامل HTML بطريقة مختلفة.

يتم تصميم إجاباتنا وتنسيقها باستخدام لغة ترميزية تسمى "تخفيض السعر". يقوم Markdown بتحويل العلامات المحددة مسبق ا إلى HTML للارتباطات والصور والرؤوس والمائل والتأكيدات وما إلى ذلك.

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

عند تحديث الصفحة ، يتم تحويل الإجابة بالفعل إلى HTML باستخدام مكتبة Python Markdown الخاصة بنا. نحن نفعل هذا لأننا نريد أن تبدو الإجابة رائعة بمجرد وصولك إلى الصفحة. إذا قررنا ببساطة إخراج الإجابة الخام ثم تحويلها باستخدام مكتبة Javascript الخاصة بنا ، فستلاحظ أولا الإجابة الخام "القبيحة" ثم الانتقال إلى الإصدار المنسق جيد ا. هذا ليس سيئ ا للغاية ، ولكن المشكلة هي أن Google وغيرها من برامج الروبوت التي تزحف على موقعنا للبحث لا تقوم بتشغيل جافا سكريبت. ستشاهد هذه السير دائم ا الإجابة القبيحة القاسية التي قد تلحق الضرر بترتيب البحث لدينا.

الآن ، لماذا تعامل هاتان المكتبتان رموز HTML بشكل مختلف؟ مكتبة Python المسؤولة عن الإجابة النهائية "تهرب" من HTML ، مما يعني أنها تأخذ رموز HTML وتغييرها إلى نص غير ضار. أقول ضارة لأنه يمكنك تخيل أن السماح للمستخدمين بإدخال HTML في صفحتنا يمكن أن يدمر تصميم الصفحة تمام ا. مكتبة جافا سكريبت المسؤولة عن المعاينة لا تفلت من HTML ، وهو خطأ تقني ا.

في المستقبل ، سيتعين علينا إزالة قدرة مكتبة Javascript على معاينة أكواد HTML لأسباب أمنية. سننتقل أيض ا إلى استخدام مكتبة واحدة لتقديم نص Markdown بالكامل.