تهيئة YAML (.yaml)

YAML قياسي

لغة YAML ليست لغة ترميز (YAML) هي تنسيق تسلسل البيانات المهيمن للبنية الأساسية السحابية الحديثة (Kubernetes، Docker Compose) وأتمتة CI/CD، مع التركيز على سهولة القراءة البشرية من خلال المسافات البادئة النظيفة.

تحويل YAML إلى JSON

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

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات YAML من خلال فحص تسلسل البايت الثنائي البادئ:

اختر أو أقطِف الملفات هنا

تحويل خاص بنسبة 100% داخل المتصفح - لا تغادر الملفات جهازك أبداً

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (Magic Bytes)

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات YAML من خلال فحص تسلسل البايت الثنائي البادئ:

التوقيع الست عشري (الإزاحة 0):

2D 2D 2D 0A

تمثيل ASCII: ---\n

القياسية: YAML 1.2.2 Specification

المواصفات الفنية

هيكلية الحاويةIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
الضغطUncompressed text stream
ترتيب البايتات (Endianness)UTF-8 / Unicode text stream
مساحات الألوانN/A (Data Serialization)
القنوات والبنيةMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
الحد الأقصى للأبعادUnbounded document size (supports multi-document streams separated by '---')
الشفافيةNone
البث والتحميل التدرجيMulti-document streams allow sequential document-by-document processing

مصفوفة المقارنة التقنية: YAML مقابل المنافسين

السمة التقنيةYAML (الحالي)JSONTOMLXML
نمط البنيةتسلسل هرمي لمسافات البادئة البيضاءأقواس واقتباسات صارمةجداول وأزواج مفتاح=قيمةوسوم فتح/إغلاق مطولة
دعم التعليقاتأصلي (تعليقات #)غير مسموح بالتعليقاتأصلي (تعليقات #)<!-- تعليقات -->
اعتماد DevOpsمعيار عالمي (Kubernetes, CI/CD)معيار API عالميتكوين حزمة Rust/Pythonتكوين المؤسسات القديم
إعادة استخدام البياناتمرابط أصلية (&) و الاسم المستعار (*)لا يوجد (نسخ يدوي)لا يوجد (نسخ يدوي)كيانات XML

أنماط التلف الشائعة ودليل استرداد النظام السداسي

خطأ في المُحلل: 'mapping values are not allowed here' أو خطأ في المسافة البادئة.

السبب الجذري: خلط علامات التبويب مع المسافات أو مستويات المسافات البادئة غير المتسقة.

الاسترداد: تحويل علامات التبويب إلى مسافات والتحقق من صحة البنية باستخدام مُنسق YAML من File2File.

تحليل الأمان وناقلات هجوم المحلل اللغوي

محللات YAML التي تدعم وسوم الأنواع المخصصة (مثل 'yaml.load()' في PyYAML) سمحت تاريخياً بتنفيذ التعليمات البرمجية عن بُعد عبر إنشاء كائنات تعسفية.

ناقلات الهجوم المعروفة

  • تنفيذ تعليمات برمجية تعسفية من خلال وسوم إلغاء تسلسل الكائنات غير الآمنة (مثل '!!python/object/apply').
  • قنابل توسيع الكيان (ما يعادل مليار ضحكة باستخدام مرابط وألقاب YAML).
  • ثغرات خلط الأنواع بسبب التحليل الضمني للقيم المنطقية والطوابع الزمنية.

أفضل الممارسات الدفاعية:

الأصول التاريخية والمحطات الرئيسية

2021نشر مراجعة YAML 1.2.2، التي تحسن توافق JSON وتدقق تعريفات القواعد الرسمية.
2009YAML 1.2 يثبت YAML كفئة فائقة صارمة لـ JSON، مما يعني أن كل ملف JSON صالح هو ملف YAML صالح.
2001كلارك إيفانز، وينيغ دوت نت، وأورين بن-كيقي يبتكرون YAML كبديل سهل الاستخدام ومقروء بشرياً لـ XML.

المزايا الرئيسية والإيجابيات

  • المعيار بلا منازع للبنية التحتية السحابية الحديثة: يُستخدم عالمياً في ملفات تعريف Kubernetes، وDocker Compose، وGitHub Actions.
  • بنية نظيفة ومقروءة: تزيل فوضى الأقواس والأقواس المربعة وعلامات التنصيص من خلال المسافات البادئة البديهية.
  • تدعم المراجع والرسوم التثبيتية (&anchor / *anchor) لإعادة استخدام كتل التكوين المتكررة دون ازدواجية.

القيود الفنية والسلبيات

  • حساسة للمسافات البيضاء: علامة تبويب عرضية أو مسافة إضافية واحدة يمكن أن تفسد التسلسل الهرمي للمستند أو تتسبب في أخطاء تحليل.
  • أخطاء تحويل أنواع سيئة السمعة: الكلمات غير المقتبسة مثل 'no' أو 'on' أو 'yes' أو رموز البلدان ('NO' للنرويج) يمكن أن تتحول بصمت إلى قيم منطقية.
  • سرعة تحليل أبطأ بكثير مقارنة بالتنسيقات الثنائية أو JSON الصارم.

معلومات تقنية طريفة

  • كانت YAML تعني في الأصل 'Yet Another Markup Language'، ولكن تم إعادة تسميتها بسخرية إلى الاختصار التراجعي 'YAML Ain't Markup Language' للتأكيد على تسلسل البيانات.
  • 'مشكلة النرويج' هي خطأ برمجي شهير حيث تم تحليل رمز الدولة 'NO' في ملف YAML على أنه القيمة المنطقية 'false'.
  • كل ملف JSON صالح في العالم هو في نفس الوقت ملف YAML صالح بنسبة 100%.

الأسئلة التقنية المتكررة

ما هو استخدام YAML؟

تُعد YAML لغة التكوين الأساسية للحوسبة السحابية، ونشر مجموعات Kubernetes، وملفات Docker Compose، وتدفقات عمل GitHub Actions، وإعدادات البرامج.

هل يمكنني استخدام علامات الجدولة (Tabs) في ملفات YAML؟

لا. تحظر مواصفات YAML الرسمية تماماً استخدام أحرف الجدولة للمسافات البادئة؛ يجب عليك دائماً استخدام المسافات (عادة مسافتان لكل مستوى).

كيف يمكنني تحويل YAML إلى JSON؟

يمكنك تحويل ملفات YAML إلى JSON نظيفة ومتحقق منها بنقرة واحدة باستخدام File2File.app مباشرة في متصفح الويب الخاص بك مع الحفاظ على الخصوصية التامة.