ما الذي يغيّره المنسّق أو المضغّط في الكود؟
يغيّر المنسّق التخطيط — المسافات وفواصل الأسطر والمسافات البادئة — ليصبح HTML أو CSS أو JavaScript متسقاً في القراءة، وبعض المنسّقات يوحّد أيضاً تفاصيل تعدّها اللغة متكافئة، مثل حالة أحرف أسماء الوسوم في HTML أو علامات اقتباس السمات؛ والمضغّط يزيل ما لا يحتاجه المتصفح — التعليقات والمسافات والفواصل المنقوطة الاختيارية — وقد يعيد كتابة القيم بصيغ أقصر مكافئة مثل #fff بدلاً من #ffffff. لا يُقصد بأيٍّ منهما تغيير ما يفعله الكود، لكن راجع الفروق قبل اعتمادها: فالخيار الذي يعيد ترتيب الكود، مثل ترتيب خصائص CSS، قد يغيّر التصريح الذي يسري، وتحويل اسم الوسم إلى أحرف صغيرة يُفسد مكوّناً في إطار عمل يميّز حالة الأحرف مثل <MyComponent>.
كيفية استخدام مصغّر HTML
- الصق HTML.
- فعّل الخيارات التي تريدها (إزالة علامات الاقتباس معطّلة افتراضياً).
- انسخ النتيجة المضغوطة وتحقق من مقدار التوفير في الحجم.
مزايا مصغّر HTML
- طيّ المسافات البيضاء بين الوسوم وداخل النص
- إزالة التعليقات مع الاحتفاظ بالتعليقات الشرطية (<!--[if IE]>) والتعليقات التي تبدأ بـ <!--!
- إزالة اختيارية لعلامات اقتباس السمات حيثما يسمح HTML5 بذلك
- تصغير كتل <style> و<script> المضمّنة
- إزالة السمات الزائدة (type="text/javascript" وtype="text/css" وmethod="get")
- لا يمسّ محتوى <pre> و<textarea> أبداً
مثال على مصغّر HTML
تصغير مقتطف HTML
الإدخال:
<div class="a">
<p>Hello <b>world</b></p>
<!-- note -->
</div>النتيجة:
<div class="a"><p>Hello <b>world</b></p></div>الأسئلة الشائعة حول مصغّر HTML
هل تتأثر المسافات البيضاء داخل <pre> و<textarea>؟
لا. يحتفظ هذان العنصران بمحتواهما كما هو تماماً؛ ولا تُطوى إلا المسافات البيضاء بين الوسوم وداخل النص العادي.
ما التعليقات التي تُزال؟
تُزال التعليقات العادية <!-- comments -->. أما التعليقات الشرطية (<!--[if IE]>) والتعليقات التي تبدأ بـ <!--! فيُحتفظ بها عند تفعيل «الاحتفاظ بالتعليقات الشرطية» (Keep conditional comments).
هل إزالة علامات اقتباس السمات آمنة؟
لا تُزال علامات الاقتباس إلا عندما لا تحتوي القيمة على مسافات أو علامات اقتباس أو = أو < أو > أو علامات اقتباس مائلة (backticks)، وهو ما يُعدّ HTML5 صالحاً. اترك الخيار معطّلاً إذا كانت سلسلة أدواتك تتطلب سمات مقتبسة.
هل يصغّر CSS وJavaScript المضمّنين؟
نعم. يمرّ محتوى <style> عبر مصغّر CSS، ومحتوى <script> (لأنواع JavaScript فقط) عبر مصغّر JavaScript.
المراجع
- HTML Living Standardلغة HTML، بما فيها مراجع المحارف المسماة (الكيانات) وقواعد التحليل التي تتبعها المتصفحات.
- ECMAScript® Language Specification (ECMA-262)معيار لغة JavaScript، بما فيه قواعد RegExp ودلالاتها، وJSON.parse/JSON.stringify، وكائن Date.