تهيئة YAML (.yaml)
YAML قياسيلغة YAML ليست لغة ترميز (YAML) هي تنسيق تسلسل البيانات المهيمن للبنية الأساسية السحابية الحديثة (Kubernetes، Docker Compose) وأتمتة CI/CD، مع التركيز على سهولة القراءة البشرية من خلال المسافات البادئة النظيفة.
تحويل YAML إلى JSON
محول مجاني داخل المتصفح للتحويل من YAML إلى JSON. قم بتحويل الملفات فوراً على جهازك.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات YAML من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (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 (الحالي) | JSON | TOML | XML |
|---|---|---|---|---|
| نمط البنية | تسلسل هرمي لمسافات البادئة البيضاء | أقواس واقتباسات صارمة | جداول وأزواج مفتاح=قيمة | وسوم فتح/إغلاق مطولة |
| دعم التعليقات | أصلي (تعليقات #) | غير مسموح بالتعليقات | أصلي (تعليقات #) | <!-- تعليقات --> |
| اعتماد DevOps | معيار عالمي (Kubernetes, CI/CD) | معيار API عالمي | تكوين حزمة Rust/Python | تكوين المؤسسات القديم |
| إعادة استخدام البيانات | مرابط أصلية (&) و الاسم المستعار (*) | لا يوجد (نسخ يدوي) | لا يوجد (نسخ يدوي) | كيانات XML |
أنماط التلف الشائعة ودليل استرداد النظام السداسي
خطأ في المُحلل: 'mapping values are not allowed here' أو خطأ في المسافة البادئة.
السبب الجذري: خلط علامات التبويب مع المسافات أو مستويات المسافات البادئة غير المتسقة.
الاسترداد: تحويل علامات التبويب إلى مسافات والتحقق من صحة البنية باستخدام مُنسق YAML من File2File.
تحليل الأمان وناقلات هجوم المحلل اللغوي
محللات YAML التي تدعم وسوم الأنواع المخصصة (مثل 'yaml.load()' في PyYAML) سمحت تاريخياً بتنفيذ التعليمات البرمجية عن بُعد عبر إنشاء كائنات تعسفية.
ناقلات الهجوم المعروفة
- تنفيذ تعليمات برمجية تعسفية من خلال وسوم إلغاء تسلسل الكائنات غير الآمنة (مثل '!!python/object/apply').
- قنابل توسيع الكيان (ما يعادل مليار ضحكة باستخدام مرابط وألقاب YAML).
- ثغرات خلط الأنواع بسبب التحليل الضمني للقيم المنطقية والطوابع الزمنية.
أفضل الممارسات الدفاعية:
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- المعيار بلا منازع للبنية التحتية السحابية الحديثة: يُستخدم عالمياً في ملفات تعريف 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 مباشرة في متصفح الويب الخاص بك مع الحفاظ على الخصوصية التامة.
أزواج تحويل YAML ذات الصلة
يؤدي تحويل ملفات إعدادات YAML إلى تنسيق JSON إلى ترجمة هياكل النصوص المقروءة بشرياً ذات المسافات البادئة إلى كائنات صارمة قابلة للتحليل الآلي لتطبيقات الويب.
يعمل تحويل ملفات إعدادات JSON إلى تنسيق YAML على تحويل هياكل البيانات البرمجية الصارمة إلى مستندات نظيفة وقابلة للقراءة بشرياً يسهل على مسؤولي النظام تعديلها.