منسق YAML

نسِّق وصادق وحوّل مستندات YAML مع تلوين تركيبي وكشف عن الأخطاء

يعمل محليًا

إدخال YAML

المخرجات المنسّقة

الفاحص

الصق YAML صالحًا — ستظهر البنية والشجرة ومسارات المفاتيح هنا تلقائيًا

خيارات متقدمة

قارن مع ملف YAML آخر

أرسل هذا المستند إلى Data Diff والصق نسخة ثانية لترى ما الذي تغيّر.

تحقق من الصحة مع موضع الخطأ الدقيق

يعمل التحقق من الصحة مع كل ضغطة مفتاح باستخدام محلل js-yaml 1.2. تحصل المستندات الصالحة على إحصاءات حية لعدد المستندات والتعيينات (mappings) والتسلسلات (sequences) والمفاتيح والعمق، بينما تعرض المستندات المعطوبة السطر والعمود الدقيقين وسببًا محتملًا وتظليلًا عند الموضع الذي فشل فيه التحليل — وليس مجرد "syntax error".

أخطاء YAML الشائعة التي تحددها هذه الأداة بدقة

تمثل هذه الأخطاء معظم حالات YAML غير الصالحة، ويتم كشف كل منها مع الموضع وسبب محتمل:

مسافة بادئة خاطئة

سطر فرعي بمسافة بادئة أقل من سطره الأصلي، أو أسطر متجاورة غير متوافقة في المحاذاة. يُبلَّغ عنه عادةً برسالة "bad indentation of a mapping entry" عند السطر الدقيق.

حرف TAB

يحظر YAML استخدام محارف الجدولة في المسافة البادئة. يُبلِّغ المحلل عن "found a tab character that violates indentation" ويُظلِّل السطر المخالف.

مفتاح مكرر

نفس المفتاح مرتين في mapping واحد. يُبلِّغ js-yaml عن "duplicated mapping key" مع سطر الظهور الثاني.

نقطتان أو مسافة مفقودة

مفتاح بدون قيمة ("key key2") أو نقطتان ملتصقتان بالمفتاح ("key:value" تُعامل كسلسلة نصية عادية وليست زوجًا). يُبلَّغ عنه برسالة "could not find expected ':'".

قبل / بعد

ملف Kubernetes manifest مصغَّر على اليسار، والمستند نفسه منسَّقًا بمسافة بادئة بمسافتين على اليمين. تُحدَّث البنية والشجرة والمسارات انطلاقًا من المستند المُحلَّل.

Before (flow style)
{apiVersion: apps/v1, kind: Deployment, metadata: {name: web-app}, spec: {replicas: 3, template: {metadata: {labels: {app: web}}}}}
After (block style)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: web

مرجع سريع لـ YAML (YAML 1.2)

  • الإزاحة هي البنية: مسافات فقط — لا يُسمح أبدًا باستخدام محارف TAB في الإزاحة.
  • يجب أن تتبع النقطتين مسافة لكي تُعتبرا فاصلًا للمفتاح: "key: value" وليس "key:value".
  • تُحل القيم القياسية (Scalars) إلى أنواعها وفق المخطط الأساسي (core schema): true/false (قيم منطقية)، وأعداد صحيحة، وأعداد عشرية، وnull (~ / null / فارغ). لاحظ أن "yes"/"no" سلاسل نصية عادية في الإصدار 1.2.
  • تُفصل المستندات المتعددة في ملف واحد بسطر "---"، بينما يُنهي "..." المستند.
  • تحافظ المراسي (Anchors) بصيغة (&base) والأسماء البديلة (Aliases) بصيغة (*base) على مبدأ DRY في الملفات، وتتيح مفاتيح الدمج ("<<: *base") توريث التعيينات (mappings).

الخطوات التالية مع هذه البيانات

التنسيق هو الخطوة الأولى. تابع سير العمل دون مغادرة متصفحك:

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

إجابات على الأسئلة الشائعة حول تنسيق Yaml Formatter

يتبع المنسّق مواصفات YAML 1.2، مما يضمن التوافق مع الأدوات الحديثة مثل Kubernetes وDocker Compose وGitHub Actions وغيرها من المنصات السحابية الأصلية (cloud-native).

نعم، تتيحك ميزة التحويل ثنائي الاتجاه تحويل YAML إلى JSON ومن JSON إلى YAML مع الحفاظ على أنواع البيانات والبنى المتداخلة والتعليقات حيثما ينطبق ذلك.

بالتأكيد. صُمم المنسّق للتعامل مع ملفات Manifests الخاصة بـ Kubernetes وملفات Docker Compose وتدفقات CI/CD وسائر ملفات YAML متعددة المستندات مع الفصل السليم بين الأقسام.

يتحقق المدقق من اتساق الإزاحة، والاستخدام الصحيح للنقطتين والشرطات، وتوازن علامات الاقتباس في السلاسل النصية، ومراجع المراسي والأسماء البديلة، كما يقدم رسائل خطأ محددة برقم السطر لتصحيح الأخطاء بسرعة.

نعم، يتعامل المنسّق بشكل صحيح مع مراسي YAML (&) والأسماء البديلة (*) ومفاتيح الدمج (<<)، مع الحفاظ على هذه الميزات الموفرة للتكرار (DRY) أثناء تنسيق البنية المحيطة.

YAML 1.2، وهي المواصفة الحالية من yaml.org - وهي الإصدار الذي تستهدفه مستندات Kubernetes وdocker-compose وGitHub Actions. جعلت YAML 1.2 من JSON مجموعة فرعية صالحة وأحكمت تحليل القيم المنطقية؛ ويحافظ المنسّق على اقتباس صريح في المواضع التي قد يُسيء فيها محللات الإصدار 1.1 (الشائعة حتى الآن في Python PyYAML) تفسير قيم مثل "no" أو "0777".

تحافظ مراسي YAML والأسماء البديلة والمقاطع النصية (block scalars) على التعليقات دون تغيير، أما التعليق المرتبط بمفتاح تُعاد إزاحته فينتقل مع مستوى الإزاحة الخاص به. لا يحذف المنسّق التعليقات أبدًا - بل ينقلها بأدنى حد ممكن لتبقى مرتبطة بالعقدة التي توثقها.

يُشير إليها: القيم المجردة NO وno وON وon وyes وn تُقتبس تلقائيًا أثناء التنسيق، حتى لا يتمكن محللات YAML 1.1 من تحويلها إلى قيم منطقية. وتظل قائمة رموز الدول [NO, SE, DK] ثلاث سلاسل نصية. لا يعتبر الإصدار YAML 1.2 سوى true/false قيمًا منطقية، لكن الاقتباس هو المخرَج الوحيد الآمن في كلا الإصدارين.

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

الأدوات ذات الصلة