YAML إلى TOML

حوّل إعدادات YAML إلى TOML مع إزاحة وفرز مفاتيح اختياريين.

حوّل إعدادات YAML إلى TOML مع إزاحة وفرز مفاتيح اختياريين. حوّل إعدادات YAML إلى TOML مع إزاحة وفرز مفاتيح اختياريين.

الناتج

خلفية

متى يتداخل YAML و TOML ومتى لا يتداخلان

يهدف كل من YAML و TOML إلى أن يكونا صيغتين لإعدادات قابلة للقراءة من قبل البشر. يتداخلان بشكل كبير في البيانات التي يمكنهما تمثيلها (الخرائط، التسلسلات، القيم العددية)، لكنهما يختلفان في البنية وفي حالات حافة قليلة. يدعم YAML الوسوم والمراسي والقيم العددية متعددة الأسطر؛ ويميز TOML بين الجداول السطرية ومصفوفات الجداول، ويعامل التواريخ كنوع من الدرجة الأولى.

محول YAML إلى TOML هو الأكثر فائدة عند ترحيل ملف إعدادات من الصيغة المفضلة لأداة ما إلى صيغة أداة أخرى: على سبيل المثال، نقل بيان Kubernetes إلى مقتطف pyproject.toml، أو إعادة صياغة جرد Ansible في جدول [dependencies] الخاص بـ Cargo.

ما ينجو من التحويل

تصبح الخرائط (key: value في YAML) جداول TOML أو أزواج مفتاح/قيمة حسب السياق. تصبح التسلسلات مصفوفات سطرية أو ترويسات [[array.of.tables]]. تُحفظ القيم العددية ما دامت تُرسم بشكل نظيف: السلاسل والأعداد الصحيحة والأعداد العائمة والقيم المنطقية وتواريخ ISO.

ما لا ينجو

تُسطَّح مراسي YAML وأسماؤه المستعارة أثناء التحليل؛ يحتوي TOML المحوّل على القيمة الملموسة في كل موضع اسم مستعار، وهو ما يريده معظم المستهلكين. وسوم !!binary في YAML غير محفوظة لأن TOML لا يملك مكافئًا لها. تُحذف التعليقات عمدًا -- لا تضمن أي من الصيغتين الحفاظ على الرحلة ذهابًا وإيابًا.

نصائح سير العمل

قبل إيداع TOML المحوّل، شغّل مدقق TOML لمشروعك (taplo, toml-check, إلخ). المحول يترجم البنية فقط، لا الأسلوب؛ المدقق يلتقط مشاكل الاقتباس والإزاحة وترتيب المفاتيح التي لا يستطيع المحول اكتشافها.

مبني حول مكتبتين برخصة MIT/BSD-3 مدمجتين في public/assets: js-yaml للتحليل و smol-toml للإصدار. تتم معالجة إدخالك محليًا.

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

هل يتعامل المحول مع مراسي YAML؟
نعم. تُوسَّع المراسي (`&name value`) والأسماء المستعارة (`*name`) أثناء التحليل، لذا يحتوي TOML على القيمة المحلولة في كل موضع اسم مستعار. لا تُحفظ أسماء المراسي الأصلية.
هل ستبقى التعليقات في YAML؟
لا. تُجرد تعليقات YAML بواسطة كل محلل سائد. أعد إضافة التعليقات يدويًا في TOML إذا لزم الأمر.
هل يمكن للمحول التعامل مع ملفات YAML متعددة المستندات؟
لا. يعامل العارض كل ملف تحميل كمستند واحد. استخدم أداة مخصصة للملفات متعددة المستندات.
هل يدعم TOML السلاسل متعددة الأسطر؟
نعم. يصدر المحول سلاسل TOML الأساسية المقتبسة ثلاثيًا لأي قيمة عددية في YAML تحتوي على أسطر جديدة، لذا تُحفظ قابلية القراءة.
ماذا عن بيانات `!!binary` في YAML؟
لا يملك TOML مكافئًا لكتل base64 الثنائية. يحذر المحول ويتخطى تلك القيم لتجنب الإفساد الصامت.
هل يُرفع YAML الخاص بي؟
لا. يحدث التحليل محليًا عبر js-yaml، ويُولَّد ناتج TOML محليًا عبر smol-toml. لا يُرسل شيء إلى خادم.