Loading…

درباره این قالب‌بند YAML قالب‌بند و زیباکننده YAML آنلاین

با `values.yaml`، `docker-compose.yml` یا گردش کارهای اکشن‌های گیت‌هاب به هم ریخته کار می‌کنید؟ این قالب‌بند YAML تورفتگی و پیچیدن خط را نرمال می‌کند در حالی که لنگرها، نام‌های مستعار و اسکالرهای بلوکی را حفظ می‌کند. YAML خود را جایگذاری کنید، تنظیمات تورفتگی را تنظیم کنید و پیکربندی تمیز و آماده بررسی را در ثانیه‌ها کپی کنید. 🚀

ویژگی‌های کلیدی این فرمت‌کننده YAML

  • فرمت‌دهی مبتنی بر Prettier تنظیم شده برای فایل‌های پیکربندی YAML 1.2
  • تورفتگی یکنواخت با اندازه قابل تنظیم تورفتگی (1-8) و فاصله در مقابل تب
  • طول خط قابل تنظیم تا کلیدها و مقادیر طولانی قابل خواندن باقی بمانند
  • به درستی anchorها، aliasها، booleanهای به صورت رشته و بلوک‌های چندخطی را مدیریت می‌کند
  • با فایل‌های `.yaml` و `.yml` برای Kubernetes، Docker Compose، خطوط لوله CI و بیشتر کار می‌کند
  • YAML را از ویرایشگر خود paste کنید یا فایل‌های پیکربندی را در فرمت‌کننده drag-and-drop کنید
  • کپی یک‌کلیکی YAML فرمت شده به ویرایشگر یا repository شما
  • فرمت‌دهی عمدتاً سمت کلاینت در مرورگر شما اجرا می‌شود؛ یک fallback سرور امن تنها در صورت عدم وجود parser/plugin مورد نیاز استفاده می‌شود

🔧 نحوه فرمت کردن فایل‌های پیکربندی YAML for yaml-formatter

1

1. YAML خود را Paste یا آپلود کنید

هر قطعه YAML (مانیفست Kubernetes، `docker-compose.yml`، workflow GitHub Actions، playbook Ansible و غیره) را کپی کرده و در ویرایشگر paste کنید، یا یک فایل `.yaml` / `.yml` را drag & drop کنید.

2

2. تورفتگی و پیچیدن را تنظیم کنید

انتخاب کنید که از فاصله یا تب استفاده شود، اندازه تورفتگی (1-8 فاصله) را تنظیم کنید و طول پیچیدن/خط را برای مطابقت با سبک تیم خود تنظیم کنید. طول پیچیدن `0` به طور مؤثر پیچیدن را با استفاده از یک `printWidth` داخلی بسیار بزرگ غیرفعال می‌کند.

3

3. فرمت‌کننده را اجرا کنید

دکمه **Format** را کلیک کنید. موتور YAML مبتنی بر Prettier پیکربندی شما را با تورفتگی یکنواخت بازنویسی می‌کند در حالی که anchorها، aliasها و بلوک‌های اسکالر را حفظ می‌کند تا معناشناسی تغییر نکند.

4

4. YAML تمیز را کپی کنید

خروجی را مرور کنید، سپس YAML فرمت شده را به ویرایشگر خود کپی کنید، آن را در Git commit کنید یا در CI/CD یا رابط کاربری ارائه‌دهنده ابری خود paste کنید.

مشخصات فنی

موتور فرمت‌دهی و پشتیبانی YAML

این ابزار بر اساس یک فرمت‌کننده YAML مبتنی بر Prettier ساخته شده است که گزینه‌های پیکربندی در رابط کاربری نمایش داده می‌شوند.

ویژگیپشتیبانییادداشت‌ها
نسخه YAML✅ YAML 1.2 (معمول)مناسب برای YAML با سبک مدرن پیکربندی مورد استفاده در Kubernetes، Docker، CI/CD و برنامه‌ها.
لنگرها و نام‌های مستعار✅ حفظ شدهمراجع `&anchor` و `*alias` را در حالی که ساختار اطراف را دوباره تورفتگی‌دهی می‌کند، دست‌نخورده نگه می‌دارد.
مقیاس‌های بلوکی✅ حفظ شدهمقیاس‌های بلوکی `|` و `>` را با رعایت تورفتگی داخلی حفظ می‌کند.
مقادیر بولی و عددی✅ مدیریت دقیققالب‌بندی مقادیر را حفظ می‌کند اما ممکن است تفاوت‌های بین `yes` در مقابل "yes" یا `0012` در مقابل "0012" را آشکار کند.
YAML چند سندی (`---`)✅ معمولاسناد متعدد در یک فایل به ترتیب حفظ شده و به صورت یکنواخت قالب‌بندی می‌شوند.
اگر یک قطعه YAML داده شده از نحو بسیار عجیب یا برچسب‌های سفارشی استفاده کند که تجزیه‌گر YAML بسته‌بندی شده Prettier آن را درک نمی‌کند، ممکن است خطای تجزیه را مشاهده کنید. در آن صورت، قطعه را ساده کنید یا قالب‌بندی را به صورت محلی با زنجیره ابزار خود اجرا کنید.

تورفتگی، طول خط و سبک خروجی

قالب‌بندی گزینه‌های کلیدی را در معرض نمایش قرار می‌دهد تا بتوانید تا حد امکان با سبک پروژه خود مطابقت داشته باشید.

تنظیمگزینه‌هاتوصیه عملی
سبک تورفتگیفاصله / تباکثر راهنماهای سبک YAML فاصله را توصیه می‌کنند؛ تب فقط در صورتی که تیم شما صراحتاً آن را ترجیح دهد.
اندازه تورفتگی۱–۸ فاصله۲ فاصله برای Kubernetes و Docker رایج است؛ ۴ فاصله برای وضوح بصری بیشتر.
طول خط / بسته‌بندی۰–۱۲۰ ستون`0` بسته‌بندی را غیرفعال می‌کند (از یک `printWidth` داخلی بسیار بزرگ استفاده می‌کند)، ۸۰–۱۰۰ diffها را فشرده نگه می‌دارد.
پسوند فایل.yaml, .ymlبا `fileExtensions` و `acceptedFileTypes` در پیکربندی ابزار مطابقت دارد.
این گزینه‌ها را با `.prettierrc` یا `.editorconfig` مخزن خود هماهنگ کنید تا قالب‌بندی آنلاین با توسعه محلی و بررسی‌های CI مطابقت داشته باشد.

محدودیت‌ها و عملکرد

بهینه‌شده برای قالب‌بندی تعاملی پیکربندی‌های YAML در یک تب مرورگر.

پارامترمحدودیت / رفتاریادداشت‌ها
حداکثر اندازه ورودی متن≈ ۲ مگابایت (~۲,۰۰۰,۰۰۰ کاراکتر)محدودیت ایمنی اعمال شده در داخل تابع قالب‌بندی.
حداکثر حجم آپلود فایل≈ ۵ مگابایتمحدود شده توسط تنظیم `maxFileSize` رابط کاربری برای راحتی و قابلیت اطمینان.
مهلت قالب‌بندی~۲۵ ثانیهعملیات طولانی‌مدت متوقف می‌شوند تا از قفل شدن مرورگر جلوگیری شود.
اجرای اصلیسمت کلاینتاز طریق `runPrettier` و یک پلاگین Prettier YAML مستقیماً در مرورگر شما اجرا می‌شود.
پشتیبان سرورفقط در صورت خطاهای پارسر/پلاگیناگر یک پلاگین پارسر مورد نیاز وجود نداشته باشد، می‌توان از نقطه پایانی امن `/api/yaml-formatter` به عنوان پشتیبان استفاده کرد.
برای بسته‌های YAML بسیار بزرگ (مانند Helm charts، کتابخانه‌های CRD عظیم و غیره)، ابزارهای CLI مانند `prettier` یا `yq` را که در گردش کار محلی یا خطوط لوله CI شما یکپارچه شده‌اند، ترجیح دهید.

جایگزین‌های CLI برای قالب‌بندی YAML

از فرمت‌کننده آنلاین برای پاکسازی سریع استفاده کنید و برای پروژه‌های بزرگ و خطوط لوله خودکار به ابزارهای CLI تکیه کنید.

لینوکس / 🍏 مک

قالب‌بندی یک فایل YAML با yq (چاپ زیبا)

yq eval -P config.yaml > config.formatted.yaml

YAML را با تورفتگی یکنواخت و ترتیب کلید بسته به نسخه yq بازنویسی می‌کند.

نرمال‌سازی YAML با Prettier

prettier --parser yaml --write "**/*.{yaml,yml}"

همان کلاس موتور (پارسر YAML Prettier) را در کل مخزن شما اجرا می‌کند.

ویندوز (PowerShell / cmd)

قالب‌بندی YAML با استفاده از PowerShell + yq

yq eval -P config.yaml | Set-Content config.formatted.yaml

YAML را به صورت زیبا چاپ می‌کند و نتیجه را روی دیسک می‌نویسد.

YAML رفت و برگشتی از طریق اشیاء PowerShell

Get-Content config.yaml -Raw | ConvertFrom-Yaml | ConvertTo-Yaml | Set-Content config.formatted.yaml

از پشتیبانی YAML در PowerShell برای نرمال‌سازی ساختار و تورفتگی استفاده می‌کند.

این فرمت‌کننده آنلاین را با یک مرحله `prettier --check` یا `yq` در خط لوله CI خود ترکیب کنید تا تضمین کنید که تمام YAML در مخزن به صورت یکنواخت قالب‌بندی شده باقی می‌ماند.

موارد استفاده عملی YAML

زیرساخت و مانیفست‌های Kubernetes

  • مانیفست‌های `Deployment`، `Service` و `Ingress` در Kubernetes را قبل از بررسی کد قالب‌بندی کنید.
  • فایل‌های `values.yaml` در Helm charts را نرمال‌سازی کنید تا تفاوت‌ها تمیزتر شوند.
  • CRDها، ConfigMapها و Secrets YAML را در محیط‌های مختلف با تورفتگی یکنواخت نگه دارید.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app:latest
          ports:
            - containerPort: 80

Docker Compose و پیکربندی توسعه محلی

  • `docker-compose.yml` را قبل از اشتراک‌گذاری در مستندات یا تیکت‌ها زیبا کنید.
  • ترازبندی سرویس‌ها، شبکه‌ها و حجم‌ها را برای نگهداری آسان‌تر هماهنگ کنید.
  • قطعه‌کدهای YAML تمیز برای پست‌های وبلاگ و راهنماهای شروع به کار آماده کنید.
version: "3.9"
services:
  web:
    image: myapp:latest
    ports:
      - "8080:80"
    environment:
      - NODE_ENV=production
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: example

خطوط لوله CI/CD و اتوماسیون

  • قالب‌بندی گردش‌های کاری GitHub Actions (`.github/workflows/*.yml`).
  • پاکسازی GitLab CI (`.gitlab-ci.yml`) یا YAML Azure Pipelines.
  • YAML اتوماسیون و زیرساخت-به‌عنوان-کد را در بین تیم‌ها خوانا نگه دارید.
name: CI
on:
  push:
    branches: [ main ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: npm ci
      - run: npm test

❓ Frequently Asked Questions

این قالب‌بند YAML چه کاری انجام می‌دهد؟

ورودی YAML (معمولاً فایل‌های پیکربندی) را گرفته و آن را با ترازبندی و بسته‌بندی یکنواخت با استفاده از یک موتور YAML مبتنی بر Prettier بازنویسی می‌کند. معناشناسی پیکربندی شما ثابت می‌ماند، اما چیدمان بسیار آسان‌تر برای خواندن و بررسی می‌شود.

🧩کدام ویژگی‌های YAML پشتیبانی می‌شوند؟

این قالب‌بند برای ویژگی‌های متداول YAML 1.2 استفاده شده در فایل‌های پیکربندی طراحی شده است: نگاشت‌ها، فهرست‌ها، لنگرها و نام‌های مستعار، مقادیر بلوکی (`|` / `>`)، و فایل‌های چندسندی جدا شده با `---`. برچسب‌های سفارشی و ساختارهای بسیار عجیب ممکن است به طور کامل توسط تجزیه‌گر پایه پشتیبانی نشوند.

📏آیا محدودیت اندازه برای ورودی YAML وجود دارد؟

برای پایداری و عملکرد مرورگر، ورودی متن به حدود ۲ مگابایت (~۲,۰۰۰,۰۰۰ کاراکتر) و فایل‌های آپلود شده به حدود ۵ مگابایت محدود شده است. برای پایگاه‌های کد بزرگتر یا YAML تولید شده، به جای آن Prettier یا yq را از خط فرمان یا خط لوله CI خود اجرا کنید.

🔐آیا YAML من به یک سرور آپلود می‌شود؟

قالب‌بندی عمدتاً در مرورگر شما از طریق `runPrettier` و افزونه YAML Prettier اجرا می‌شود، بنابراین YAML شما در شرایط عادی از کلاینت خارج نمی‌شود. در موارد نادر که یک افزونه تجزیه‌گر لازم وجود ندارد، ابزار ممکن است به یک نقطه پایانی امن `/api/yaml-formatter` بازگردد. حتی در آن صورت، YAML شما فقط به صورت موقت پردازش شده و ذخیره نمی‌شود.

⚠️چرا گاهی اوقات خطاهای تجزیه‌گر را می‌بینم؟

خطاهای تجزیه‌گر معمولاً به این معنی است که YAML نادرست فرمت شده است (مثلاً ترازبندی ناسازگار، `:` گم شده یا موارد فهرست ناهمتراز) یا از سینتکسی استفاده می‌کند که تجزیه‌گر بسته‌بندی شده آن را درک نمی‌کند. ترازبندی و ساختار را تأیید کنید، یا سعی کنید قطعه کد را ساده‌تر کنید، سپس دوباره قالب‌بند را اجرا کنید.

📚این ابزار چگونه با تنظیمات محلی Prettier من مرتبط است؟

این ابزار از یک موتور YAML مبتنی بر Prettier در پشت صحنه استفاده می‌کند، مشابه اجرای `prettier --parser yaml`. شما می‌توانید از آن برای رفع سریع مشکلات یک‌باره استفاده کنید و همچنان برای قالب‌بندی کامل پروژه به `.prettierrc` محلی و دستورات CLI خود تکیه کنید.

Pro Tips

Best Practice

تمام YAML در یک مخزن (Kubernetes، GitHub Actions، Docker Compose) را با سبک ترازبندی یکسان نرمال کنید تا تفاوت‌ها و بررسی‌ها بسیار آسان‌تر شوند.

Best Practice

با مقادیری مانند `yes`، `no`، `on`، `off`، `0012` دقت کنید - اگر می‌خواهید به عنوان رشته به جای مقادیر بولی یا اعداد شبه-هشتی در نظر گرفته شوند، آن‌ها را در کوتیشن قرار دهید.

Best Practice

از این فرمت‌کننده آنلاین برای پاکسازی سریع قطعات کد برای مستندات یا تیکت‌ها استفاده کنید، سپس برای پروژه‌های کامل به `prettier` یا `yq` در هوک‌های پیش از کامیت اعتماد کنید.

CI Tip

هنگام بازآرایی پیکربندی‌های بزرگ، ابتدا فرمت کنید تا تغییرات معنایی به وضوح در تفاوت‌های Git نمایان شوند به جای اینکه در نویزهای تورفتگی دفن شوند.

Additional Resources

Other Tools