منسّق ومدقّق YAML أونلاين مجاني
نسّق وتحقق وجمّل YAML في متصفحك، وحوّل بين YAML وJSON. يعمل مع إعدادات Docker Compose وKubernetes وGitHub Actions. لا يتم إرسال أي شيء إلى الخادم أبداً.
ما هو 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 مقابل JSON: متى تستخدم كلاً منهما
YAML
استخدم YAML لملفات الإعداد المكتوبة والمحرّرة يدوياً. فهو يدعم التعليقات، وأكثر قابلية للقراءة، وهو المعيار في Docker Compose وKubernetes وGitHub Actions وAnsible وHelm.
JSON
استخدم JSON لواجهات API والبيانات المنقولة. فهو أسرع في التحليل، وبلا التباس في الأنواع، وهو التنسيق وراء واجهات REST API وpackage.json وtsconfig.json.
أخطاء YAML الشائعة وكيفية إصلاحها
- استخدام علامات الجدولة بدل المسافات للمسافة البادئة — استبدل كل علامة جدولة بمسافات، لأن YAML يمنع علامات الجدولة.
- مسافة بادئة غير متسقة — حافظ على نفس عدد المسافات في كل مستوى تداخل عبر المستند بأكمله.
- سلسلة نصية تحتوي على نقطتين دون علامات اقتباس — ضع قيماً مثل "12:30" أو "http://example.com" بين علامتي اقتباس.
- قيم منطقية ملتبسة — تُفسَّر قيم مثل yes وno وon وoff على أنها true/false؛ ضعها بين علامتي اقتباس إذا كنت تقصد الكلمات الحرفية.
- أحرف خاصة في قيمة دون علامات اقتباس — تتطلب أحرف مثل @ و# و{ وضع القيمة بين علامتي اقتباس.