مدقّق ومنسّق YAML
التنسيقتحقق وطبّع أو ضغط YAML باستخدام js-yaml. يضبط المسافات البادئة وعلامات الاقتباس ويقسم تدفقات المستندات المتعددة (---). معالجة YAML فقط — دون تحويل الصيغة.
لا يتم جلب الروابط البعيدة؛ الصق JSON مباشرة.
في هذه الصفحة
ما هو منسِّق YAML؟#
يأخذ منسِّق YAML ملفّ إعداد انحرف — علامات جدولة ممزوجة بمسافات، وخطوة إزاحة غير متناسقة، وعلامات اقتباس مستخدمة في أماكن دون أخرى، ومُرساةٍ عرَّفها أحدهم ولم يُعد استخدامها — ويُطبِّعه إلى شكلٍ نظيف متوقَّع. كما يلتقط الشيء الذي يُشتهر به YAML: وثيقة تبدو سليمة وتعني بهدوء شيئًا آخر، لأنّ YAML حسّاس للمسافات ومليء بالقواعد الضمنية حول ما تعنيه كلمة مجرّدة.
تُحلِّل هذه الصفحة YAML خاصّك وتُعيد إصداره عبر js-yaml بطريقة مضبوطة. تنسيق يُعيد الإزاحة بالخطوة التي تختارها (2 أو 4 مسافات)، ويُوقف طيّ الأسطر فتجلس كلّ قيمة على سطرها الخاص، ويُوسِّع أيّ مُرسياتٍ وأسماءً مستعارة إلى محتوى مكرَّر عاديٍّ فيكون المخرج مكتفٍيًا بذاته بالكامل. أمّا ضغط فيُعيد تفريغ البيانات نفسها بصيغة التدفّق — {a: 1, b: [2, 3]} — وهي أقرب صيغة مُحكمة لدى YAML، إذ لا يستطيع YAML ببساطة حذف مسافاته البيضاء كما يفعل JSON أو CSS. وأيّ نمط اخترت، تُحلَّل الوثيقة أوّلًا، فعلامة جدولة حيث يجب أن تكون مسافة أو نقطتين تفتقدان مسافتهما اللاحقة تُبلَّغان بصفّهما وعمودهما بدلًا من إنتاج بنية بيانات خاطئة بصمت.
كيفية الاستخدام#
- الصق YAML في لوحة الإدخال على اليسار. ويُظهر النائب وثيقة مُصغَّرة، أو انقر مثال.
- اختر زرّ الوضع من شريط الأدوات:
- تنسيق — إعادة إزاحة، وتعطيل طيّ الأسطر، وتوسيع المُرسيات/الأسماء المستعارة، وإصدار كلّ مجموعة بنمط الكتل.
- ضغط — إصدار كلّ مجموعة بنمط التدفّق على أقلّ أسطر ممكنة. وتصير الإزاحة بلا أهمّية لأنّ مجموعات التدفّق صريحة.
- في وضع التنسيق، اختر المسافة البادئة: 2 أو 4 مسافات.
- يمكنك اختياريًّا اختيار نمط علامات اقتباس: تلقائي (اقتباس فقط حين تحتاج القيمة العددية ذلك فعلًا — الافتراضي)، أو مفردة، أو مزدوجة. فهذا يُطبِّع محرف علامة الاقتباس على القيم العددية التي يجب اقتباسها؛ ولا يفرض أبدًا علامات اقتباس على قيم عادية لا تحتاجها.
- اقرأ النتيجة في لوحة الإخراج. وتُظهر الترويسة حجم المخرج؛ واستخدم نسخ لأخذه. ومسح تُعيد اللوحتين.
إن فشل التحليل، يُبلِّغ شريط الحالة عن صف وعمود المشكلة — فأخطاء YAML من js-yaml تحمل موضعًا، وتُظهر هذه الصفحة ذلك مباشرةً.
الميزات الرئيسية#
- تنسيق وضغط من التحليل نفسه. يُحقِّق النمطان الوثيقة مُقدَّمًا، فيُبلَّغ عن خطأ بنيوي مرّةً واحدة بموقع، بصرف النظر عن الزرّ الذي ضغطته.
- المُرسيات موسَّعة. تُحلَّل مراجع
&anchor/*aliasوتُكتب سطرًا سطرًا (noRefs)، فلا يعتمد المخرج أبدًا على اسم عُرِّف قبل ثلاث شاشات. والنتيجة وثيقة مكتفية بذاتها تُسلِّمها لأيّ شخص. - بلا طيّ للأسطر. لا تُلَفّ القيم الطويلة عند حدّ عمود (
lineWidth: -1)، فتحتل كلّ قيمة سطرًا واحدًا تمامًا — أسهل للموازنة وأسهل للقراءة. - تطبيع اختياري لعلامات الاقتباس. اختر علامات مفردة أو مزدوجة لجعل محرف الاقتباس متناسقًا عبر الوثيقة، أو اتركه على تلقائي فلا يحصل على علامات سوى القيم التي تحتاجها فعلًا.
- يَعي الوثائق المتعدّدة. المدخل المفصول بـ
---يُحلَّل بوصفه وثائق متعدّدة ويُعاد إصداره مع فواصل---سليمة — مفيد لبيانات Kubernetes والملفّات متعدّدة الوثائق المشابهة. - يَدافع ضدّ قنابل YAML. يَحُدّ سقف عمق التعشيش الوثائقَ المَرضيّة العمق من التمدّد إلى شيء خطِر.
- من جهة العميل صارمة، مع Web Worker للمدخلات فوق 1 ميغابايت لتبقى الصفحة متجاوبة.
مثال عملي#
إعداد خدمة بمُرساة مُعاد استخدامها وأسلوب غير متساوٍ قليلًا:
المدخل:
service:
name: &name "api-gateway"
host: example.com
replicas: 3
id: *name
logging:
level: info
outputs: [{name: stdout}, {name: file}]
انقر تنسيق بـ 2 مسافة وتلقائي لعلامات الاقتباس:
service:
name: api-gateway
host: example.com
replicas: 3
id: api-gateway
logging:
level: info
outputs:
- name: stdout
- name: file
أمران حدثا تراهما. حُلَّت المُرساة &name والاسم المستعار *name كلاهما إلى القيمة الحرفية api-gateway، فقرأ id الآن بوصفه قيمة عادية ولم تعد الوثيقة تعتمد على المُرساة. وحُوِّلت قائمة التدفّق [{name: stdout}, {name: file}] إلى قائمة كتل، إدخال واحد لكلّ سطر — أسهل بكثير للمسح والموازنة مقابل نسخة أخرى. انقر ضغط على المدخل نفسه فتعود البيانات نفسها بصيغة التدفّق:
service: {name: api-gateway, host: example.com, replicas: 3, id: api-gateway}
logging: {level: info, outputs: [{name: stdout}, {name: file}]}
كلّ مجموعة سطرية الآن. ينخفض عدد البايتات لأنّ الإزاحة والأسطر الجديدة اختفت، لكنّ المعنى مطابق — وهذا بالضبط ما ينبغي أن يعنيه التصغير لصيغة حسّاسة للمسافات.
الأسئلة الشائعة#
أين ذهبت تعليقاتي؟#
رحلة الذهاب والإياب لـ YAML عبر js-yaml تُحلِّل التعليقات وتَتجاهلها — فلا يوجد مُعيد تفريغ يحفظ التعليقات في المكتبة. يُتَسامَح مع التعليقات أثناء التحليل (لا تُسبّب خطأً أبدًا) لكنها لا تظهر في المخرج. وإن كانت التعليقات تحمل سياقًا مهمًّا، فاحتفظ بملفّك الأصلي بوصفه مصدر الحقيقة وتعامل مع مخرج هذه الأداة بوصفه الصيغة الآلية المعيارية.
ما الفرق بين التنسيق والتصغير لـ YAML؟#
يُعيد التنسيق كتابة الوثيقة بنمط الكتل النظيف: تعيينات وتسلسلات متعشّشة بإزاحة بالخطوة التي اخترتها، وقيمة واحدة لكلّ سطر، وبلا طيّ. ويُعيد التصغير كتابة البيانات نفسها بنمط التدفّق: مجموعات {key: value} و[a, b] على سطر واحد. وكلاهما يُحلَّل بشكل متطابق أوّلًا؛ ويختلفان فقط في كيفية تسلسل البيانات للخارج.
كيف يختلف هذا عن محوّل YAML/JSON؟#
هذه الأداة YAML داخلاً، YAML خارجًا — تُطبِّع أو تُحكم وثيقة YAML وتُعيد YAML. أمّا محوّل YAML/JSON في هذا الموقع فيُترجم بين الصيغتين. واستخدم هذه الصفحة حين تريد الصيغة نفسها، لكن بشكل أفضل؛ واستخدم المحوّل حين تريد JSON فعلًا.
هل YAML خاصّتي مرفوعة إلى أيّ مكان؟#
لا. js-yaml مُدمَج في الصفحة ويجري في متصفحك. وللمدخلات فوق 1 ميغابايت يجري التحليل داخل Web Worker، لكن محليًّا — لا شيء يغادر جهازك.