الأدوات

منسّق ومدقّق YAML أونلاين مجاني

نسّق وتحقق وجمّل YAML في متصفحك، وحوّل بين YAML وJSON. يعمل مع إعدادات Docker Compose وKubernetes وGitHub Actions. لا يتم إرسال أي شيء إلى الخادم أبداً.

تتم جميع عمليات التحليل والتحويل محلياً في متصفحك. لا يتم أبداً رفع YAML وJSON الخاص بك أو تخزينه أو تسجيله.

ما هو YAML؟

YAML (اختصار لـ YAML Ain't Markup Language) هو تنسيق لتسلسل البيانات قابل للقراءة البشرية، صُمّم ليكون سهل الكتابة والقراءة. أدى بناؤه النظيف المعتمد على المسافة البادئة إلى استبدال XML في كثير من ملفات الإعداد الحديثة، ويشغّل أدوات مثل Docker Compose وKubernetes وGitHub Actions وAnsible وHelm. كما أن YAML مجموعة فائقة (superset) من JSON، لذا فإن كل مستند JSON صالح هو أيضاً YAML صالح، ما يجعل التحويل بين التنسيقين بسيطاً وبلا فقدان لمعظم بيانات الإعداد اليومية.

دليل بناء جملة YAML

key: value القيم القياسية (Scalars) — زوج بسيط من المفتاح/القيمة. تستخدم السلاسل متعددة الأسطر | (حرفي، يحافظ على الأسطر) أو > (مطوي، يدمج الأسطر).
- item القوائم — كل عنصر في سطره الخاص، مسبوقاً بشرطة ومسافة.
parent: child: x القواميس المتداخلة — تعبّر عن التسلسل الهرمي عبر المسافة البادئة فقط.
# comment التعليقات — يتجاهل المحلّل كل ما يأتي بعد الرمز #.
null / true / false القيم الخاصة — يتم التعرّف على null وtrue وfalse كقيم ذات نوع، وليست سلاسل نصية.
&anchor / *alias المرابط والأسماء البديلة — عرّف عقدة مرة واحدة بـ &anchor وأعد استخدامها بـ *alias.
مهم: لا يسمح YAML باستخدام علامات الجدولة (tabs) للمسافة البادئة، بل المسافات فقط. علامة جدولة واحدة تجعل المستند بأكمله غير صالح.

YAML مقابل JSON: متى تستخدم كلاً منهما

YAML

استخدم YAML لملفات الإعداد المكتوبة والمحرّرة يدوياً. فهو يدعم التعليقات، وأكثر قابلية للقراءة، وهو المعيار في Docker Compose وKubernetes وGitHub Actions وAnsible وHelm.

JSON

استخدم JSON لواجهات API والبيانات المنقولة. فهو أسرع في التحليل، وبلا التباس في الأنواع، وهو التنسيق وراء واجهات REST API وpackage.json وtsconfig.json.

أخطاء YAML الشائعة وكيفية إصلاحها

  1. استخدام علامات الجدولة بدل المسافات للمسافة البادئة — استبدل كل علامة جدولة بمسافات، لأن YAML يمنع علامات الجدولة.
  2. مسافة بادئة غير متسقة — حافظ على نفس عدد المسافات في كل مستوى تداخل عبر المستند بأكمله.
  3. سلسلة نصية تحتوي على نقطتين دون علامات اقتباس — ضع قيماً مثل "12:30" أو "http://example.com" بين علامتي اقتباس.
  4. قيم منطقية ملتبسة — تُفسَّر قيم مثل yes وno وon وoff على أنها true/false؛ ضعها بين علامتي اقتباس إذا كنت تقصد الكلمات الحرفية.
  5. أحرف خاصة في قيمة دون علامات اقتباس — تتطلب أحرف مثل @ و# و{ وضع القيمة بين علامتي اقتباس.

الأسئلة الشائعة

لا. يمنع YAML بصرامة أحرف الجدولة للمسافة البادئة — يجب أن تستخدم المسافات. وهذا من أكثر أسباب أخطاء "YAML غير صالح" شيوعاً. إذا كان محرّرك يُدرج علامات جدولة، فاضبطه على تحويلها إلى مسافات (عادةً مسافتان لكل مستوى). ويُخرج المنسّق في هذه الصفحة مسافات دائماً، لذا فإن تمرير ملفك عبره يصلح علامات الجدولة العَرَضية تلقائياً.

كلاهما يقدّم سلاسل متعددة الأسطر لكنهما يتعاملان مع فواصل الأسطر بشكل مختلف. يحافظ المقياس الكتلي الحرفي | على فواصل الأسطر تماماً كما كُتبت، فيبقى كل سطر في سطره — مثالي للنصوص البرمجية أو النص المنسّق. أما المقياس الكتلي المطوي > فيدمج الأسطر بمسافات، فيختصر الكتلة إلى سطر واحد مع معاملة الأسطر الفارغة كفواصل فقرات — مفيد للنص الطويل الذي تريد التفافه في المصدر لكن تخزينه في سطر واحد.

نعم. اعتباراً من YAML 1.2، كل مستند JSON صالح هو أيضاً مستند YAML صالح، لأن صياغة التدفق (flow) في YAML تستخدم الأقواس المعقوفة والمربعة وقواعد الاقتباس نفسها الموجودة في JSON. هذا يعني أنه يمكنك لصق JSON مباشرة في محلّل YAML وسيعمل، ويجعل التحويل بين التنسيقين موثوقاً — وهو تحديداً ما تفعله علامتا التبويب YAML إلى JSON وJSON إلى YAML في هذه الصفحة.

تفسّر محلّلات YAML مجموعة من الكلمات — yes وno وon وoff وtrue وfalse — كقيم منطقية. لذلك تُقرأ القيمة القياسية غير المقتبسة yes على أنها القيمة المنطقية true وتُسلسَل هكذا في JSON. إذا احتجت إلى السلسلة الحرفية "yes" (مثل رمز دولة أو حقل إجابة)، فضعها بين علامتي اقتباس: answer: "yes". يجبر الاقتباس المحلّل على الإبقاء عليها كنص بدلاً من تحويلها إلى قيمة منطقية.