أدوات المطورين · محرر HTML WYSIWYG
ماذا يحدث عند اللصق من Word أو Google Docs في محرر الويب
· كيف يعمل
أتش تي أم أل contenteditable تنظيف النص
يشرح ما تحمله معاجين النص المنسق، بدءًا من أنماط mso وحتى عناصر الغلاف ومجموعات الخطوط، ويوضح كيفية قراءة العلامات الناتجة قبل أن تصل إلى موقعك.
بدا الأمر جيدًا في Word - يُفتح بمقالة ملصقة تتعارض مسافاتها وخطوطها مع تصميم الموقع
يمكن أن تبدو الفقرة المنسوخة من معالج النصوص مصقولة في المصدر وتصل مع الخطوط والمسافات والأغلفة التي تتعارض مع الموقع. ToolAcre لا يحافظ على هذا العرض التقديمي بالجملة. يعترض مستمع اللصق الخاص به العملية قبل إدراج العلامات الغنية الأصلية ويختار تمثيلاً تمت تصفيته بدلاً من ذلك.
الدليل المهم هو وجهة نظر المصدر، وليس ما إذا كان الانطباع البصري الأول يشبه الوثيقة الأصلية. المحرر ضيق عمدًا: يمكن للعناوين والفقرات والتأكيدات والقوائم والاقتباسات والعناصر الشبيهة بالكود والروابط البقاء على قيد الحياة، في حين أن حاويات التخطيط وأسماء الفئات والمعرفات وسمات النمط المضمنة لا تنتمي إلى عقد الإخراج الخاص بها.
تحتوي الحافظة على أكثر من مجرد نص - يوضح ذلك أن نسخة النص المنسق تشتمل على نكهة HTML إلى جانب النص العادي
يمكن أن تعرض الحافظة `text/html` و`text/plain` لعملية نسخ واحدة. المعالج يسأل عن كليهما. عند وجود حمولة HTML، فإنها تقوم بتطهير تلك السلسلة وإدراج الجزء المعاد كتابته بـ `insertHTML`؛ فقط عند غياب Rich HTML، يتم إدراج الحمولة العادية مع `insertText`.
تم إثبات هذه الأسبقية من خلال التعليمات البرمجية لهذه اللوحة، وليست بيانًا عالميًا حول كل تطبيق. وهذا ما يفسر لماذا يمكن للمعجون الغني أن يحتفظ بالقائمة بينما يفقد مظهره. قام التطبيق المصدر بكتابة الحافظة HTML، ولكن القائمة المسموح بها لـ ToolAcre تحدد الجزء المسموح به على السطح القابل للتعديل.
ما يزيله هذا المحرر من اللصق المنسق: العناصر والسمات والتعليقات غير المدعومة
يتم التعامل مع العناصر غير المدعومة بطريقتين. يتم فك الأغلفة العادية غير المعروفة بحيث تظل كلماتها، بينما تتم إزالة الحاويات النصية والنمط وiframe والنموذج وSVG وMathML وغيرها من الحاويات الخطرة أو غير المحررة مع محتوياتها. يتم أيضًا تجاهل التعليقات والنماذج المستندية بدلاً من إدراجها في المسودة.
السمات تواجه البوابة الثانية. تتم إزالة الفئة والمعرف والنمط وسمات البيانات وكل معالج حدث لأن السمات المسموح بها تتم تسميتها لكل عنصر. وهذا يعني أن أسماء الفئات الخاصة بالمصدر والعرض التقديمي المضمن لا يمكنهما مقاومة ورقة أنماط الوجهة بعد قيام ToolAcre بتصفية اللصق، على الرغم من أن تصميم المصدر المفيد قد يختفي أيضًا.
لماذا لا تنجو الأغلفة والأنماط الخاصة بالمصدر من القائمة المسموح بها؟
لا يوفر المستودع تركيبات Word أو Google Docs التي تم التقاطها، لذلك لا تخترع هذه المقالة فئات `mso-` أو معرفات داخلية أو تسلسلات مجمعة لإصدارات معينة. يمكن أن توضح النتيجة التي أثبتتها القائمة المسموح بها: تتم إزالة الفئات والأنماط بغض النظر عن التطبيق المصدر الذي قدمها.
تعتبر قاعدة الحياد عن المصدر بمثابة توجيه تحريري أقوى من الكتالوج الهش. افحص إشعار الإزالة بعد اللصق. فهو يسجل أسبابًا فريدة مثل برنامج تضمين غير مدعوم أو سمة محظورة أو URL مرفوضة. يخبرك التقرير بما تم تجاهله من خلال هذا التطبيق دون التظاهر بتحديد التطبيق الذي أنشأ كل جزء في الأصل.
مثال عملي: الصق ثلاث فقرات واقرأ العلامات التي تمت تصفيتها
انسخ ثلاث فقرات قصيرة، مع جعل الجملة الوسطى غامقة والأخيرة قائمة. بعد اللصق، قم بالتبديل إلى الوضع المصدر. توجد عناصر الفقرة والقوي وul وli ضمن القائمة المسموح بها، بينما يتم إلغاء تغليف عناصر div المحيطة وتختفي سمات النمط. يتم تطبيع العلامات القديمة b وi إلى strong وem.
أضف الآن سمة حدث غير آمن في نموذج مصدر يمكن التخلص منه وارجع إلى الوضع المرئي. تتم إزالة السمة قبل أن يصبح هذا المصدر DOM. وهذا يوضح حدود التحرير، وليس النشر الآمن للإرسالات المعادية. يحذر المشروع صراحةً من فروق المحلل اللغوي ويتطلب مطهرًا مناسبًا من جانب الخادم للمحتوى غير الموثوق به.
يتم استخدام لصق النص العادي فقط عندما لا توفر الحافظة نكهة HTML
يُعد إدراج نص عادي إجراءً احتياطيًا، وليس أمر "لصق بدون تنسيق" يمكن للمستخدم تحديده في شريط الأدوات هذا. إذا كانت الحافظة توفر HTML، فإن ToolAcre يأخذ هذا الفرع. قد يعرض اختصار المتصفح أو نظام التشغيل لصقًا عاديًا فقط، لكن المستودع لا يحدد أو يعد بسلوك اختصار محدد.
عندما يتوفر نص فقط، `insertText` يطلب من المتصفح وضع تلك الأحرف في علامة الإقحام. تظل أي بنية فقرة تم إنشاؤها لاحقًا خاضعة لسلوك تحرير المتصفح. استخدم العرض المصدر لإضافة عناوين أو قوائم مقصودة بدلاً من افتراض أن فواصل الأسطر من تطبيق آخر تصبح تلقائيًا البنية التي يتوقعها CMS.
ما لا يغطيه هذا — قواعد التنظيف التلقائي، أو مرشحات اللصق الخاصة بـ CMS، أو الاحتفاظ بالتغييرات المتعقبة
لا يحتفظ سير العمل هذا بالتغييرات المتعقبة أو التعليقات أو تخطيط الصفحة أو الخطوط أو الألوان أو الجداول أو الصور. الصور غائبة عمدًا لأن الصورة المسموح بها تنشئ طلبًا صادرًا وسطحًا لمعالج الأخطاء. لا يحتوي المحرر أيضًا على ملف تعريف تنظيف خاص بالمصدر أو مفتاح يعد بالإخلاص لمجموعة مكتبية واحدة.
لا يثبت اللصق محليًا أن الوجهة النهائية ستقبل نفس المجموعة الفرعية. قد يقوم CMS بإزالة المزيد من العلامات أو إعادة كتابة الروابط أو فرض سياسته الخاصة. قارن مخرجات المحرر بالوثائق الوجهة، واحتفظ بنسخة أصلية عندما يؤدي فقدان التنسيق غير المدعوم إلى إزالة المعلومات بدلاً من مجرد العرض التقديمي.
الخلاصة: انظر قبل النشر - يلخص عادة الفحص وكيف يتيح لك محرر ToolAcre HTML WYSIWYG اللصق محليًا ورؤية العلامات قبل أن تنتقل إلى أي مكان
انظر قبل النشر: الصق جزءًا تمثيليًا وغير حساس، واقرأ تحذير الإزالة، وافحص المصدر، وقم بمعاينة النتيجة التي تمت تصفيتها. يقدم ToolAcre قائمة مسموحة واحدة صريحة بدلاً من نقل العروض التقديمية الأجنبية إلى موقعك بصمت. وهذا يجعل عملية التنظيف مرئية، ولكنها لا تصادق على أن HTML التعسفية آمنة.
إذا اختفت البنية الأساسية، فأعد بناءها بالعناوين والفقرات والقوائم والتأكيدات والروابط المدعومة. إذا كان الهدف يقبل أقل، قم بتبسيط الأمر أكثر. القطعة الأثرية الصحيحة ليست أقرب تقليد مرئي للمستند المصدر؛ تتم مراجعة العلامات التي يتم فهم معناها وسياسة الوجهة.