منسّق HTML هو أداة تُجري تنسيق HTML (يُعرف أيضًا بالتجميل أو الطباعة الجميلة): تُضيف مسافات بادئة متسقة وفواصل أسطر وتباعدًا إلى ترميز HTML حتى تصبح بنيته التشعبية مرئية. تتجاهل المتصفحات المسافات البيضاء عند عرض HTML، لذا فإن مستندًا مكتوبًا في سطر واحد ينتج الناتج ذاته مقارنةً بمستند ذي مسافات بادئة دقيقة. الفرق بينهما حكر على البشر: HTML المنسّق أسهل قراءةً وتصحيحًا وصيانةً.
تُعرّف مواصفة HTML (التي تصونها WHATWG بوصفها HTML Living Standard) أكثر من 110 عنصرًا، لكلٍّ منها نموذج محتوى خاص به. العناصر الكتلية كـ <div> و<section> و<article> تبدأ عادةً في سطر جديد وتُضيف مسافة بادئة لعناصرها الفرعية. أما العناصر الفارغة كـ <br> و<img> و<input> فلا تحتوي على وسم إغلاق ولا عناصر فرعية. يفهم المنسّق الجيد هذه الفروق ويطبّق قواعد المسافات البادئة وفقًا لها، بدلًا من إضافة مسافة بيضاء بعد كل وسم بصورة عشوائية.
يصبح التنسيق ضروريًا فعلًا أثناء التطوير. فالـ HTML المُصغَّر أو المُولَّد آليًا، والمخرجات من منصات نظام إدارة المحتوى، والترميز المنسوخ من أدوات المطور في المتصفح، كثيرًا ما تصل في سطر كثيف واحد. بدون مسافات بادئة مناسبة، يستغرق إيجاد وسم إغلاق مفقود أو تتبع بنية متشعبة عميقة وقتًا أطول بكثير. يحوّل منسّق HTML تلك الكتلة الضخمة من النص إلى بنية شجرية مقروءة مع مسافات بادئة صحيحة في خطوة واحدة.
لماذا تستخدم منسّق HTML هذا؟
الصق أي HTML واحصل فورًا على مخرجات بمسافات بادئة صحيحة. لا إضافات للتثبيت، ولا ملفات إعداد للكتابة، ولا حسابات للتسجيل.
⚡
تنسيق فوري
النتيجة تظهر أثناء الكتابة. الصق HTML مُصغَّرًا من أي مصدر وشاهد النتيجة بمسافات بادئة دون انتظار خطوة بناء أو أمر CLI.
🔒
المعالجة تُحافظ على خصوصيتك
يعمل كل التنسيق في متصفحك باستخدام JavaScript. لا يغادر HTML الخاص بك جهازك أبدًا، لذا من الآمن لصق الترميز الذي يحتوي على مفاتيح API أو توكنات أو روابط داخلية.
🎯
مسافات بادئة قابلة للتخصيص
بدّل بين مسافتَين وأربع مسافات بنقرة واحدة. يطبّق المنسّق اختيارك بصورة متسقة على كل مستوى من مستويات التشعب.
📋
نسخ بنقرة واحدة
انسخ المخرجات المنسّقة إلى الحافظة بزر واحد. الصقها مباشرةً في محررك، أو مراجعة طلب السحب، أو التوثيق.
حالات استخدام منسّق HTML
تطوير الواجهة الأمامية
نسّق قوالب HTML قبل إيداعها في نظام التحكم بالإصدار. تُقلّل المسافات البادئة المتسقة من ضجيج الفروق في طلبات السحب وتُسرّع مراجعة الكود.
تصحيح أخطاء قوالب الخادم
كثيرًا ما يُخرج HTML المُصيَّر من الخادم عبر أُطر عمل كـ Django أو Rails أو PHP ترميزًا بدون مسافات بادئة. الصق المخرجات المُصيَّرة هنا للتحقق من التشعب وتحديد الوسوم غير المغلقة.
عمليات DevOps وخطوط أنابيب CI
تحقق من أن أدوات البناء تُنتج HTML بنية جيدة. نسّق مخرجات مولدات المواقع الثابتة أو أدوات بناء رسائل HTML الإلكترونية قبل الفحص البصري.
ضمان الجودة والاختبار
قارن لقطات منسّقة من مخرجات HTML بين تشغيلات الاختبار. المسافات البادئة الصحيحة تجعل الفروق الهيكلية واضحةً عند مقارنة نسختَين من صفحة.
هندسة البيانات
تُنتج خطوط أنابيب تجميع الويب HTML خامًا يحتاج إلى فحص. نسّق الصفحات المُجمَّعة لفهم بنية DOM الخاصة بها قبل كتابة محددات الاستخراج.
تعلّم HTML
يمكن للطلاب لصق الكود المصدري لأي موقع ومشاهدة كيفية تشعب العناصر داخل بعضها. يوضّح عرض الشجرة المنسّق العلاقات بين الوسوم الأب والابن بوضوح تام.
قواعد المسافات البادئة في HTML
تعتمد طريقة معالجة المنسّق لكل نوع عنصر على نموذج محتواه. يعرض الجدول أدناه العناصر الشائعة وكيفية تطبيق المسافات البادئة بإعداد مسافتَين وأربع مسافات. كلاهما ينتج تصييرًا متطابقًا في المتصفح؛ الفرق في سهولة القراءة.
الوسم
نوع العنصر
مسافة بادئة (مسافتان)
مسافة بادئة (أربع مسافات)
<div>
Block element
New line, indent children
New line, indent children
<span>
Inline element
New line, indent children
Inline with parent text
<br>
Void element
New line, same level
New line, same level
<img>
Void element
New line, same level
New line, same level
<!-- -->
Comment
New line, same level
New line, same level
<!DOCTYPE>
Document type
First line, no indent
First line, no indent
<script>
Script block
New line, preserve inner
New line, preserve inner
<pre>
Preformatted
New line, preserve inner
New line, preserve inner
المنسّق مقابل المُصغِّر مقابل أداة الفحص
تعمل هذه الأدوات الثلاث على HTML لكنها تخدم أغراضًا مختلفة. التنسيق والتصغير تحويلان متعاكسان؛ بينما تفحص أداة الفحص الأخطاء دون تغيير المسافات البيضاء.
المنسّق (هذه الأداة)
يُضيف مسافات بادئة وفواصل أسطر لجعل HTML مقروءًا. لا يُغيّر بنية DOM ولا يحذف أي محتوى. تُصيَّر المخرجات في المتصفح بصورة مطابقة للمدخلات.
المُصغِّر
يحذف المسافات البيضاء والتعليقات ووسوم الإغلاق الاختيارية لتقليل حجم الملف. وهو عكس التنسيق تمامًا. استخدمه في بنيات الإنتاج، لا للقراءة أو التحرير.
أداة الفحص (HTMLHint / W3C)
تفحص HTML بحثًا عن أخطاء كخاصية alt المفقودة، أو المُعرِّفات المكررة، أو الوسوم المُهمَلة. تُبلّغ عن المشاكل لكنها لا تُغيّر المسافات البادئة أو التنسيق.
أمثلة الكود
كيفية تنسيق HTML برمجيًا في اللغات والأدوات الشائعة:
package main
import (
"bytes"
"fmt"
"golang.org/x/net/html"
"strings"
)
func main() {
ugly := "<div><p>Hello</p></div>"
doc, _ := html.Parse(strings.NewReader(ugly))
var buf bytes.Buffer
html.Render(&buf, doc)
fmt.Println(buf.String())
// renders normalized HTML — pair with indent logic for pretty output
}
CLI (Prettier)
# Format a single file in place
npx prettier --write index.html
# Format and print to stdout (pipe-friendly)
npx prettier --parser html index.html
# Format with 4-space indentation
npx prettier --tab-width 4 --parser html index.html
# Format HTML from stdin
echo '<div><p>Hello</p></div>' | npx prettier --parser html
الأسئلة الشائعة
ما الفرق بين تنسيق HTML والتحقق منه؟
التنسيق يُضيف مسافات بادئة وفواصل أسطر لجعل الترميز مقروءًا. أما التحقق فيفحص ما إذا كان الترميز متوافقًا مع مواصفة HTML، ويُبلّغ عن أخطاء كالخصائص المطلوبة المفقودة أو العناصر المتشعبة بصورة غير صحيحة. المنسّق لا يُصلح الأخطاء؛ وأداة التحقق لا تُغيّر المسافات البيضاء.
هل يُغيّر تنسيق HTML طريقة عرض الصفحة؟
في معظم الحالات، لا. تدمج المتصفحات المسافات البيضاء المتعددة في مسافة واحدة عند التصيير. الاستثناءات هي العناصر التي تحمل خاصية CSS white-space: pre أو ما يماثلها، وعنصرَا <pre> و<textarea> حيث تكتسب المسافات البيضاء أهمية. يحافظ المنسّق الجيد على محتوى هذه العناصر كما هو بالضبط.
كم عدد المسافات الموصى بها للمسافة البادئة في HTML؟
مسافتان وأربع مسافات كلاهما شائعان. يوصي دليل أسلوب HTML/CSS من Google بمسافتَين. يُعيَّن Prettier افتراضيًا على مسافتَين. تتوافق أربع مسافات مع اصطلاح PEP 8 الخاص بـ Python وتُفضّلها بعض الفرق لتحقيق التناسق عبر اللغات. اختر أحدهما وطبّقه بمنسّق أو إعداد محرر.
هل يمكنني تنسيق HTML يحتوي على JavaScript أو CSS مضمّنَين؟
تنسّق هذه الأداة بنية HTML (الوسوم والخصائص). تُحفظ كتل <script> و<style> المضمّنة كما هي. لتنسيق JavaScript وCSS المضمّنَين، استخدم منسّقًا مخصصًا كـ Prettier الذي يستطيع تحليل اللغات الثلاث وتنسيقها في تمريرة واحدة.
هل لا يزال الجدل بين المسافات والجدولة قائمًا في HTML؟
تُعيَّن معظم أدلة أسلوب HTML والمنسّقات افتراضيًا على المسافات. يُظهر استطلاع Stack Overflow للمطورين لعام 2023 أن المسافات يستخدمها نحو 55% من المشاركين في تطوير الويب. لأحرف الجدولة ميزة إمكانية الوصول المتمثلة في السماح لكل مطور بضبط عرضها البصري المفضّل. كلاهما يعمل؛ الاتساق داخل المشروع أهم من الاختيار ذاته.
لماذا يبدو HTML الخاص بي مختلفًا بعد التنسيق؟
يُضيف المنسّق محارف مسافة بيضاء (مسافات وأسطر جديدة) لم تكن في الترميز الأصلي. هذا يُغيّر مظهر الكود المصدري لكنه لا يُغيّر المخرجات المُصيَّرة. إن رأيت فرقًا بصريًا في المتصفح، فغالبًا ما يكون سببه عناصر مضمّنة حيث تُنشئ المسافات المُضافة محرف مسافة إضافيًا بين الوسوم، ويمكن حل ذلك بـ CSS (font-size: 0 على العنصر الأب، أو تخطيط flexbox).
كيف أفرض تنسيق HTML متسقًا على مستوى الفريق؟
استخدم منسّقًا آليًا في خط أنابيب CI. يدعم Prettier HTML ويمكن تشغيله كخطاف ما قبل الإيداع عبر Husky أو lint-staged. أضف ملف إعداد .prettierrc إلى مستودعك محددًا فيه tabWidth وprintWidth وhtmlWhitespaceSensitivity. عندها سيتبع كل إيداع قواعد التنسيق ذاتها بصرف النظر عن إعدادات محرر كل مطور.
ما الفرق بين منسّق HTML ومُجمِّل HTML؟
هما العملية ذاتها. يشير كلٌّ من 'المنسّق' و'المُجمِّل' إلى إضافة مسافات بادئة وفواصل أسطر إلى ترميز HTML. تستخدم بعض الأدوات 'beautify' (كـ js-beautify)، وتستخدم أخرى 'format' (كـ Prettier). المخرجات متطابقة: HTML بمسافات بادئة صحيحة وقابل للقراءة البشرية. 'Pretty-print' مرادف آخر شائع في التوثيق واستعلامات البحث.