ویژگیهای کلیدی این فرمتکننده 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. YAML خود را Paste یا آپلود کنید
هر قطعه YAML (مانیفست Kubernetes، `docker-compose.yml`، workflow GitHub Actions، playbook Ansible و غیره) را کپی کرده و در ویرایشگر paste کنید، یا یک فایل `.yaml` / `.yml` را drag & drop کنید.
2. تورفتگی و پیچیدن را تنظیم کنید
انتخاب کنید که از فاصله یا تب استفاده شود، اندازه تورفتگی (1-8 فاصله) را تنظیم کنید و طول پیچیدن/خط را برای مطابقت با سبک تیم خود تنظیم کنید. طول پیچیدن `0` به طور مؤثر پیچیدن را با استفاده از یک `printWidth` داخلی بسیار بزرگ غیرفعال میکند.
3. فرمتکننده را اجرا کنید
دکمه **Format** را کلیک کنید. موتور YAML مبتنی بر Prettier پیکربندی شما را با تورفتگی یکنواخت بازنویسی میکند در حالی که anchorها، aliasها و بلوکهای اسکالر را حفظ میکند تا معناشناسی تغییر نکند.
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 فاصله را توصیه میکنند؛ تب فقط در صورتی که تیم شما صراحتاً آن را ترجیح دهد. |
| اندازه تورفتگی | ۱–۸ فاصله | ۲ فاصله برای Kubernetes و Docker رایج است؛ ۴ فاصله برای وضوح بصری بیشتر. |
| طول خط / بستهبندی | ۰–۱۲۰ ستون | `0` بستهبندی را غیرفعال میکند (از یک `printWidth` داخلی بسیار بزرگ استفاده میکند)، ۸۰–۱۰۰ diffها را فشرده نگه میدارد. |
| پسوند فایل | .yaml, .yml | با `fileExtensions` و `acceptedFileTypes` در پیکربندی ابزار مطابقت دارد. |
محدودیتها و عملکرد
بهینهشده برای قالببندی تعاملی پیکربندیهای YAML در یک تب مرورگر.
| پارامتر | محدودیت / رفتار | یادداشتها |
|---|---|---|
| حداکثر اندازه ورودی متن | ≈ ۲ مگابایت (~۲,۰۰۰,۰۰۰ کاراکتر) | محدودیت ایمنی اعمال شده در داخل تابع قالببندی. |
| حداکثر حجم آپلود فایل | ≈ ۵ مگابایت | محدود شده توسط تنظیم `maxFileSize` رابط کاربری برای راحتی و قابلیت اطمینان. |
| مهلت قالببندی | ~۲۵ ثانیه | عملیات طولانیمدت متوقف میشوند تا از قفل شدن مرورگر جلوگیری شود. |
| اجرای اصلی | سمت کلاینت | از طریق `runPrettier` و یک پلاگین Prettier YAML مستقیماً در مرورگر شما اجرا میشود. |
| پشتیبان سرور | فقط در صورت خطاهای پارسر/پلاگین | اگر یک پلاگین پارسر مورد نیاز وجود نداشته باشد، میتوان از نقطه پایانی امن `/api/yaml-formatter` به عنوان پشتیبان استفاده کرد. |
جایگزینهای CLI برای قالببندی YAML
از فرمتکننده آنلاین برای پاکسازی سریع استفاده کنید و برای پروژههای بزرگ و خطوط لوله خودکار به ابزارهای CLI تکیه کنید.
لینوکس / 🍏 مک
قالببندی یک فایل YAML با yq (چاپ زیبا)
yq eval -P config.yaml > config.formatted.yamlYAML را با تورفتگی یکنواخت و ترتیب کلید بسته به نسخه 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.yamlYAML را به صورت زیبا چاپ میکند و نتیجه را روی دیسک مینویسد.
YAML رفت و برگشتی از طریق اشیاء PowerShell
Get-Content config.yaml -Raw | ConvertFrom-Yaml | ConvertTo-Yaml | Set-Content config.formatted.yamlاز پشتیبانی YAML در PowerShell برای نرمالسازی ساختار و تورفتگی استفاده میکند.
موارد استفاده عملی 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: 80Docker 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 من به یک سرور آپلود میشود؟
YAML Prettier اجرا میشود، بنابراین YAML شما در شرایط عادی از کلاینت خارج نمیشود. در موارد نادر که یک افزونه تجزیهگر لازم وجود ندارد، ابزار ممکن است به یک نقطه پایانی امن `/api/yaml-formatter` بازگردد. حتی در آن صورت، YAML شما فقط به صورت موقت پردازش شده و ذخیره نمیشود.⚠️چرا گاهی اوقات خطاهای تجزیهگر را میبینم؟
YAML نادرست فرمت شده است (مثلاً ترازبندی ناسازگار، `:` گم شده یا موارد فهرست ناهمتراز) یا از سینتکسی استفاده میکند که تجزیهگر بستهبندی شده آن را درک نمیکند. ترازبندی و ساختار را تأیید کنید، یا سعی کنید قطعه کد را سادهتر کنید، سپس دوباره قالببند را اجرا کنید.📚این ابزار چگونه با تنظیمات محلی Prettier من مرتبط است؟
YAML مبتنی بر Prettier در پشت صحنه استفاده میکند، مشابه اجرای `prettier --parser yaml`. شما میتوانید از آن برای رفع سریع مشکلات یکباره استفاده کنید و همچنان برای قالببندی کامل پروژه به `.prettierrc` محلی و دستورات CLI خود تکیه کنید.Pro Tips
تمام YAML در یک مخزن (Kubernetes، GitHub Actions، Docker Compose) را با سبک ترازبندی یکسان نرمال کنید تا تفاوتها و بررسیها بسیار آسانتر شوند.
با مقادیری مانند `yes`، `no`، `on`، `off`، `0012` دقت کنید - اگر میخواهید به عنوان رشته به جای مقادیر بولی یا اعداد شبه-هشتی در نظر گرفته شوند، آنها را در کوتیشن قرار دهید.
از این فرمتکننده آنلاین برای پاکسازی سریع قطعات کد برای مستندات یا تیکتها استفاده کنید، سپس برای پروژههای کامل به `prettier` یا `yq` در هوکهای پیش از کامیت اعتماد کنید.
هنگام بازآرایی پیکربندیهای بزرگ، ابتدا فرمت کنید تا تغییرات معنایی به وضوح در تفاوتهای Git نمایان شوند به جای اینکه در نویزهای تورفتگی دفن شوند.
Additional Resources
Other Tools
- زیباکننده CSS
- زیباکننده HTML
- زیباکننده JavaScript
- زیباکننده PHP
- انتخابگر رنگ
- استخراجکننده اسپرایت
- دیکودر Base64
- انکودر Base64
- فرمتدهنده C#
- فرمتدهنده CSV
- Dockerfile Formatter
- فرمتدهنده Elm
- فرمتدهنده ENV
- فرمتدهنده Go
- فرمتدهنده GraphQL
- فرمتدهنده HCL
- فرمتدهنده INI
- فرمتدهنده JSON
- فرمتدهنده LaTeX
- فرمتدهنده Markdown
- فرمتدهنده Objective-C
- Php Formatter
- فرمتدهنده Proto
- فرمتدهنده Python
- فرمتدهنده Ruby
- فرمتدهنده Rust
- فرمتدهنده Scala
- فرمتدهنده اسکریپت شل
- فرمتدهنده SQL
- قالببندی SVG
- قالببندی Swift
- قالببندی TOML
- Typescript Formatter
- قالببندی XML
- قالببندی Yarn
- کوچککننده CSS
- Html Minifier
- Javascript Minifier
- کوچککننده JSON
- کوچککننده XML
- نمایشگر هدرهای HTTP
- PDF به متن
- تستکننده Regex
- بررسیکننده رتبه SERP
- جستجوی Whois