YAML فارمیٹر

نحو ہائی لائٹنگ اور غلطی کا پتہ لگانے کے ساتھ YAML دستاویزات فارمیٹ، تصدیق، اور تبدیل کریں

مقامی طور پر چلتا ہے

YAML ان پٹ

فارمیٹڈ آؤٹ پٹ

انسپکٹر

درست YAML پیسٹ کریں — اسٹرکچر، ٹری اور کی پاتھ خودبخود یہاں ظاہر ہوں گے

اعلیٰ اختیارات

دوسرے YAML کے ساتھ موازنہ کریں

یہ دستاویز Data Diff کو بھیجیں اور دوسرا ورژن پیسٹ کریں تاکہ تبدیلیاں دیکھ سکیں۔

غلطی کے بالکل درست مقام کے ساتھ توثیق

ہر کی اسٹروک پر js-yaml 1.2 پارسر کے ذریعے توثیق چلتی ہے۔ درست دستاویز کے لیے دستاویزات، میپنگز، سیکوئنسز، کلیدوں اور depth کی لائیو گنتی ملتی ہے۔ خراب دستاویز میں بالکل درست لائن اور کالم، ایک ممکنہ وجہ، اور غلطی کے مقام کی نمایاں نشاندہی کے ساتھ رپورٹ ہوتی ہے — محض "syntax error" نہیں۔

عام YAML خرابیاں جن کی یہ ٹول بالکل درست نشاندہی کرتا ہے

یہ غلطیاں زیادہ تر غلط YAML کی وجہ بنتی ہیں۔ ہر ایک کا سراغ مقام اور ممکنہ وجہ کے ساتھ لگایا جاتا ہے:

غلط انڈینٹیشن

چائلڈ لائن کا اپنے پیرنٹ سے کم انڈینٹ ہونا، یا ہم پلہ لائنوں کا ایک دوسرے کے ساتھ نہ ملنا۔ عام طور پر بالکل درست لائن پر "bad indentation of a mapping entry" کے طور پر رپورٹ ہوتا ہے۔

TAB کریکٹر

YAML انڈینٹیشن میں ٹیبز کی اجازت نہیں دیتا۔ پارسر "found a tab character that violates indentation" رپورٹ کرتا ہے اور متاثرہ لائن کو نمایاں کرتا ہے۔

ڈپلیکیٹ کلید

ایک ہی میپنگ میں ایک ہی کلید دو بار۔ js-yaml "duplicated mapping key" رپورٹ کرتا ہے اور دوسرے وقوع کی لائن بتاتا ہے۔

کولون یا اسپیس کا غائب ہونا

بغیر ویلیو کی کلید ("key key2") یا کلید سے چپٹا ہوا کولون ("key:value" ایک سادہ اسٹرنگ ہے، جوڑا نہیں)۔ "could not find expected ':'" کے طور پر رپورٹ ہوتا ہے۔

پہلے / بعد

بائیں جانب منی فائیڈ Kubernetes manifest، دائیں جانب وہی دستاویز 2-space انڈینٹ کے ساتھ فارمیٹ شدہ۔ ساخت، ٹری اور paths پارس شدہ دستاویز سے اپڈیٹ ہوتے ہیں۔

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 separator بننے کے لیے کولن کے بعد ایک اسپیس لازمی ہے: "key: value"، "key:value" نہیں۔
  • Scalars core schema کے مطابق types میں resolve ہوتے ہیں: true/false (booleans)، integers، floats، null (~ / null / خالی)۔ نوٹ کریں کہ "yes"/"no" 1.2 میں سادہ strings ہیں۔
  • ایک فائل میں متعدد documents کو "---" لائن سے الگ کیا جاتا ہے؛ "..." ایک document کا اختتام ظاہر کرتا ہے۔
  • Anchors (&base) اور aliases (*base) فائلز کو DRY رکھتے ہیں؛ merge keys ("<<: *base") mappings کو وراثت میں لیتے ہیں۔

اس ڈیٹا کے ساتھ اگلے اقدامات

فارمیٹنگ پہلا قدم ہے۔ براؤزر چھوڑے بغیر ورک فلو جاری رکھیں:

اکثر پوچھے گئے سوالات

Yaml Formatter فارمیٹنگ کے بارے میں عام سوالات کے جوابات

فارمیٹر YAML 1.2 specification کی پیروی کرتا ہے، جو Kubernetes، Docker Compose، GitHub Actions اور دیگر cloud-native پلیٹ فارمز جیسے جدید ٹولز کے ساتھ مطابقت یقینی بناتی ہے۔

جی ہاں، bidirectional کنورژن فیچر آپ کو YAML کو JSON میں اور JSON کو YAML میں تبدیل کرنے کی سہولت دیتا ہے، جبکہ ڈیٹا کی اقسام، nested structures اور جہاں ممکن ہو کمنٹس بھی محفوظ رہتے ہیں۔

بالکل۔ فارمیٹر Kubernetes manifests، Docker Compose فائلز، CI/CD pipelines اور دیگر multi-document YAML فائلز کو مناسب سیکشن علیحدگی کے ساتھ سنبھالنے کے لیے ڈیزائن کیا گیا ہے۔

ویلیڈیٹر انڈینٹیشن کی یکسانیت، کولن اور ڈیش کے درست استعمال، quoted strings کے توازن، anchors اور aliases کے ریفرنسز کی جانچ کرتا ہے اور تیز ڈیبگنگ کے لیے لائن مخصوص ایرر میسجز فراہم کرتا ہے۔

جی ہاں، فارمیٹر YAML anchors (&)، aliases (*) اور merge keys (<<) کو درست طریقے سے سنبھالتا ہے اور آس پاس کے ڈھانچے کو فارمیٹ کرتے وقت ان DRY فیچرز کو محفوظ رکھتا ہے۔

YAML 1.2، جو yaml.org کی موجودہ spec ہے - وہی ورژن جس کی طرف Kubernetes، docker-compose اور GitHub Actions کی دستاویزات اشارہ کرتی ہیں۔ YAML 1.2 نے JSON کو ایک درست subset بنایا اور boolean پارسنگ کو سخت کیا؛ فارمیٹر آپ کے quoting کو صریح رکھتا ہے وہاں جہاں 1.1 پارسرز (جو اب بھی Python PyYAML میں عام ہیں) "no" یا "0777" جیسی ویلیوز کو غلط پڑھ سکتے ہیں۔

YAML anchors، aliases اور block scalars کمنٹس کو غیر تبدیل شدہ رکھتے ہیں، لیکن اس key سے جُڑا کمنٹ جسے دوبارہ انڈینٹ کیا جاتا ہے، اپنے انڈینٹیشن لیول کے ساتھ منتقل ہو جاتا ہے۔ فارمیٹر کبھی بھی کمنٹس حذف نہیں کرتا - یہ انہیں کم سے کم حرکت کے ساتھ اسی node سے منسلک رکھتا ہے جس کی وہ وضاحت کرتا ہے۔

یہ اسے نمایاں کرتا ہے: بغیر quotes والے NO، no، ON، on، yes، n فارمیٹنگ کے دوران خودکار طور پر quotes میں لگ جاتے ہیں، تاکہ YAML 1.1 پارسرز انہیں booleans میں تبدیل نہ کر سکیں۔ ملکی کوڈز کی فہرست [NO, SE, DK] تین strings ہی رہتی ہے۔ YAML 1.2 صرف true/false کو booleans سمجھتا ہے، لیکن quoting ہی واحد آؤٹ پٹ ہے جو دونوں ورژنز کے تحت محفوظ ہے۔

{-- * 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 --}}

معتبر حوالہ جات

معیارات اور سرکاری دستاویزات جو اس ٹول کے کام کرنے والے فارمیٹس کی تعریف کرتے ہیں۔

متعلقہ ٹولز