منسّق ومدقق HTML / XML
الصق HTML أو XML واحصل عليه منسّقًا بمسافات بادئة مرتبة، مع إبراز أخطاء سلامة البنية (XML) أو تنبيهات الوسوم غير المغلقة (HTML).
1,246 مشاهدة
كيف يعمل
يتتبع المنسّق العلامات في ترميزك ويحسب عمق التداخل أثناء ذلك: كل وسم فتح يرفع عداد العمق مستوى واحدًا، وكل وسم إغلاق مطابق يخفضه مستوى واحدًا. يحصل كل سطر ناتج على عدد من وحدات المسافة البادئة يتناسب مع عمقه الحالي — وسم على عمق مستوى واحد يحصل على وحدة مسافة بادئة واحدة، ووسم على عمق أربعة مستويات يحصل على أربع وحدات، وهكذا. ترث عقد النص والتعليقات والسمات عمق العنصر الذي يحتويها، بحيث تعكس النتيجة النهائية بصريًا بنية الشجرة الفعلية للمستند بدلاً من كتلة نص متواصلة بلا فواصل.
على سبيل المثال، سطر واحد مضغوط مثل <ul><li>A</li><li>B</li></ul> يعود بالشكل التالي: <ul> في المستوى الأعلى، مع <li>A</li> و<li>B</li> وقد تدرّج كل منهما مسافة بادئة واحدة، ووسم الإغلاق </ul> عائدًا إلى المستوى الأعلى — ثلاثة أسطر بدلاً من سطر واحد، وعمق كل سطر يُقرأ فورًا من مسافته البادئة وحدها. العناصر الفارغة مثل <br> أو <img> لا ترفع عداد العمق أبدًا، لأنها لا تحتوي على عناصر فرعية يمكن تداخلها بداخلها.
معلومة مفيدة
اختر وضع XML ويصبح المحلل صارمًا: أي مخالفة لسلامة البنية — وسم غير مغلق، تداخل غير متطابق، حرف غير صالح — يُبلَّغ عنها برسالة خطأ محددة بدلاً من إصلاحها بصمت. اختر وضع HTML بدلاً من ذلك، وتقوم الأداة عندئذ بفحص توازن الوسوم بأفضل جهد ممكن، لأن المتصفحات نفسها تحلل HTML بتساهل ولا توجد حالة "غير صالح" صارمة مكافئة يمكن اكتشافها. يعكس هذا الفرق اختلافًا حقيقيًا بين الصيغتين: تشترط مواصفة XML أن يكون المستند سليم البنية أو أن يُرفض بالكامل، دون حل وسط، في حين صُمم HTML5 عمدًا بحيث لا تكسر الأخطاء الصغيرة في الكتابة — مثل نسيان وسم إغلاق — الصفحة. هذا التقليد المتساهل هو أيضًا سبب كون <br/> إلزاميًا في XML بينما <br> و<br/> كلاهما صالح وقابل للتبادل في HTML.
هذا مفيد إلى ما هو أبعد بكثير من تنظيم ترميز مكتوب يدويًا. HTML مصغّر مأخوذ من صفحة مباشرة، أو استجابة واجهة برمجة XML معادة كسطر واحد كثيف، أو ملف إعدادات مُصدَّر دون أي تنسيق — كل هذه تصبح أسهل بكثير للقراءة، ويصبح رصد وسم في مكان خاطئ أسهل بكثير، بمجرد تطبيق المسافة البادئة القائمة على العمق. ولأن المسافة البادئة تُحسب من جديد من البنية المحللة بدلاً من نسخها من المدخل، تكون النتيجة متسقة بغض النظر عن مدى تفاوت التباعد الأصلي.
الأسئلة الشائعة
لماذا يكتشف وضع XML أخطاء يفوّتها وضع HTML؟
يملك XML مواصفة صارمة لسلامة البنية — يرفض محلل XML في المتصفح أي شيء يخالفها. تحليل HTML متساهل عمدًا (هدف تصميمي أساسي حتى لا ينهار الويب بسبب أخطاء صغيرة)، لذا لا يوجد خطأ صارم مكافئ — تُجري هذه الأداة بدلًا من ذلك فحص توازن للوسوم بأفضل جهد ممكن في حالة HTML.
كيف تقرر الأداة مقدار المسافة البادئة لكل سطر؟
تتبع الأداة عمق التداخل أثناء التحليل: فتح وسم يزيد العمق بمقدار واحد، وإغلاقه ينقصه بمقدار واحد، ويحصل كل سطر على مسافة بادئة تتناسب مع عمقه في تلك اللحظة. عنصر يقع على عمق ثلاثة مستويات في الشجرة يحصل على ثلاث وحدات مسافة بادئة، بغض النظر عن طول أو قصر الوسوم المحيطة به.
لماذا <br/> إلزامي في XML لكنه اختياري في HTML؟
لا يملك XML مفهومًا مدمجًا لعنصر "فارغ" — يجب إغلاق كل وسم صراحة، إما بوسم إغلاق منفصل أو بشرطة الإغلاق الذاتي، وإلا فلن يكون المستند سليم البنية. أما HTML5 فيعرّف قائمة ثابتة من العناصر الفارغة (br، img، input، hr، وغيرها) تعرف المتصفحات مسبقًا أنها لا تأخذ عناصر فرعية أبدًا، لذا يُحلَّل كل من <code><br></code> و<code><br/></code> بالطريقة نفسها.
هل يغيّر التنسيق محتواي؟
لا — يتغيّر فقط الفراغ والمسافة البادئة. تبقى الوسوم والسمات والنص والتعليقات محفوظة تمامًا (تُعاد كتابة قيم السمات بترميز آمن، وهذا لا يغيّر سوى أحرف علامات الاقتباس، لا القيمة نفسها أبدًا).
هل يعمل هذا على مستند عميق التداخل أو مصغّر؟
نعم — نهج تتبع العمق لا يهتم بكيفية تنسيق المدخل أصلاً أو بعمق تداخله؛ فملف مصغّر في سطر واحد وملف آخر مُنسَّق يدويًا بفوضى ينتجان النتيجة النظيفة نفسها، لأن المسافة البادئة تُعاد حسابها من بنية الوسوم نفسها بدلاً من الحفاظ عليها من المدخل.
أدوات مشابهة
الإبلاغ عن مشكلة
منسّق ومدقق HTML / XML
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!