ویژگیهای کلیدی فرمت دهنده SVG ما
- **حالت زیبا کردن** با تورفتگی هوشمند، شکستن خط و تراز ویژگیها
- **حالت فشرده سازی** که فضاهای خالی، نظرات و ابردادههای اضافی را حذف میکند
- فرمتدهی به سبک Prettier و بهینهسازی به سبک SVGO در پشت صحنه
- سبک تورفتگی قابل تنظیم (فاصله یا تب) و اندازه تورفتگی
- ستون شکست اختیاری برای مرتب نگه داشتن مسیرها و ویژگیهای طولانی
- سبک یکپارچه پایان خط (LF / CRLF) برای diffهای تمیز در بین سیستمعاملها
- کشیدن و رها کردن فایلهای `.svg` تا ۵ مگابایت یا چسباندن نشانهگذاری SVG درونخطی
- پردازش ۱۰۰٪ سمت کاربر - آثار هنری شما هرگز مرورگر را ترک نمیکنند
- کپی یا دانلود یککلیکی خروجی قالببندیشده (`.formatted.svg`) یا فشرده (`.min.svg`)
- رابط کاربری واکنشگرا که به خوبی روی لپتاپها، دسکتاپها و تبلتها کار میکند
🔧 نحوه قالببندی یا فشردهسازی SVG: راهنمای سریع for svg-formatter
1. چسباندن یا آپلود SVG
📥 فایل `.svg` خود را بکشید و رها کنید یا نشانهگذاری SVG خام را در ویرایشگر بچسبانید. ابزار به طور خودکار محتوای استاندارد `image/svg+xml` را تشخیص میدهد.
2. انتخاب قالببندی یا فشردهسازی
✨ **قالببندی** را برای نشانهگذاری قابل خواندن توسط انسان (عالی برای بازبینیها و کنترل نسخه) یا **فشردهسازی** را برای کوچکترین اندازه فایل ممکن انتخاب کنید.
3. تنظیم گزینههای قالببندی
⚙️ **سبک تورفتگی** (فاصله یا تب)، **اندازه تورفتگی** و **طول خط / پیچش** اختیاری را تنظیم کنید. اینها مستقیماً به تنظیمات قالببند زیرین نگاشت میشوند.
4. پیشنمایش و خروجی
👀 کد SVG بهینهشده را بررسی کنید، آن را سریع در پروژه خود آزمایش کنید، سپس آن را در کلیپبورد خود کپی کنید یا نتیجه را به عنوان فایل `.svg` جدید دانلود کنید.
جزئیات فنی
موتور زیباسازی (حالت قالببندی)
حالت قالببندی از موتوری شبیه Prettier استفاده میکند که برای نشانهگذاری XML SVG تنظیم شده است. این موتور بر خوانایی و diffهای پایدار و قابل پیشبینی تمرکز دارد.
| جنبه | رفتار | یادداشتها |
|---|---|---|
| سبک تورفتگی | فاصله یا تب | از طریق **سبک تورفتگی** قابل پیکربندی است (به `indentStyle` نگاشت میشود). |
| اندازه تورفتگی | ۱-۸ فاصله | عرض تودرتو هنگام استفاده از فاصله را کنترل میکند (به `indentSize` نگاشت میشود). |
| طول خط / پیچش | ۰-۱۲۰ ستون | `0` پیچش را غیرفعال میکند؛ در غیر این صورت خطوط طولانی در اطراف ستون انتخاب شده پیچیده میشوند (به `wrapLineLength` نگاشت میشود). |
| پایان خط | LF (`\n`) یا CRLF (`\r\n`) | پایان خطها را در بین سیستمعاملها یکپارچه نگه میدارد (به `endOfLine` نگاشت میشود). |
| زبان خروجی | SVG با سبک XML | ساختار XML سازگار با SVG را برای جاسازی ایمن حفظ میکند. |
خط لوله کوچکسازی (حالت مینیفای)
حالت مینیفای از خط لولهای الهامگرفته از SVGO استفاده میکند که بر کاهش اندازه تمرکز دارد در حالی که خروجی بصری را حفظ میکند.
| مرحله | توضیحات | تاثیر |
|---|---|---|
| حذف نظرات | گرههای نظری `<!-- ... -->` را که بر رندرینگ تاثیری ندارند، حذف میکند. | فایلهای کوچکتر، تفاوتهای تمیزتر. |
| حذف فاصلههای اضافی | فاصلهها، تبها و شکستهای خط غیرضروری را جمع میکند. | سود بزرگ برای SVGهای صادر شده از ویرایشگرهای پرحرف. |
| هرس فراداده | در صورت ایمن بودن، گرههای فراداده غیررندرینگ را به صورت اختیاری حذف میکند. | مناسب برای داراییهای تولید عمومی. |
| نرمالسازی ویژگیها | ویژگیها را به روشی پایدار ساده و مرتب میکند. | خروجی فشردهتر، قابلیت کش بهتر. |
رمزگذاری و سازگاری
خروجی UTF-8 SVG با مرورگرها و ابزارهای مدرن سازگار است و با مشخصات SVG 2 هماهنگ است.
عملکرد و محدودیتها (مرورگر دسکتاپ معمولی)
| نوع فایل | اندازه ورودی | زمان زیباسازی | زمان کوچکسازی | کاهش اندازه معمول |
|---|---|---|---|---|
| آیکون | ۵ کیلوبایت | ⚡ کمتر از ۱۵ میلیثانیه | ⚡ کمتر از ۲۰ میلیثانیه | ≈ ۲۵–۴۰٪ |
| تصویرسازی | ۱۰۰ کیلوبایت | ⚡ کمتر از ۶۰ میلیثانیه | ⚡ کمتر از ۹۰ میلیثانیه | ≈ ۴۰–۵۵٪ |
| گرافیک قهرمان | ۵۰۰ کیلوبایت | ⏱️ < ۳۰۰ میلیثانیه | ⏱️ < ۴۵۰ میلیثانیه | ≈ ۵۰–۶۰٪ |
جایگزینهای CLI برای کاربران حرفهای
آیا گردش کار ترمینال یا یکپارچهسازی CI را ترجیح میدهید؟ Prettier و SVGO را برای رفتاری مشابه این ابزار ترکیب کنید:
لینوکس / 🍎 مک
زیبا کردن SVG با Prettier
npx prettier --parser xml --print-width 80 --tab-width 2 --write input.svgتورفتگی و شکستن خطوط یکنواخت را به نشانهگذاری SVG شما اعمال میکند.
کوچک کردن SVG با SVGO
npx svgo input.svg -o input.min.svgنظرات، فراداده و فضاهای خالی اضافی را برای فایلهای کوچکتر حذف میکند.
ویندوز (PowerShell یا CMD)
زیبا-چاپ SVG با استفاده از xmlstarlet (از طریق WSL یا بومی)
xmlstarlet fo --indent-spaces 2 input.svg > pretty.svgSVG/XML را با تورفتگی ۲ فاصله قالببندی میکند.
کوچک کردن SVG با SVGO (بدون نصب سراسری)
npx svgo input.svg -o min.svgSVGO را مستقیماً از طریق `npx` برای بهینهسازیهای یکباره اجرا میکند.
کاربردهای عملی
عملکرد وب و بستههای فرانتاند
- کاهش حجم SVG در سیستمهای طراحی، مجموعههای آیکون و صفحات اسپرایت.
- قرار دادن SVG کوچکشده درون خطی در HTML/CSS برای صرفهجویی در درخواستهای HTTP اضافی.
- بهبود Core Web Vitals با کوچک کردن تصاویر قهرمان در صفحات فرود.
<img src="/assets/hero.min.svg" alt="گرافیک قهرمان بهینهشده" />.icon-check { background-image: url('data:image/svg+xml;utf8,<svg ...>'); }تحویل طراحی و کنترل نسخه
- زیبا کردن SVG صادر شده قبل از بازبینی کد برای خوانایی تفاوتها.
- نگهداری یک `.formatted.svg` زیبا برای همکاری و یک `.min.svg` برای تولید.
- اعمال تورفتگی و ترتیب ویژگیهای یکنواخت در سراسر سیستم طراحی.
موبایل، ایمیلها و اپهای ترکیبی
- کوچک کردن SVGهای درون خطی در ایمیلهای HTML برای کمپینهای سبکتر.
- کاهش حجم بسته اپ در React Native / Capacitor / Ionic هنگام ارسال آیکونهای زیاد.
- صرفهجویی در پهنای باند برای کاربران با اتصالات کند یا محدود.
❓ Frequently Asked Questions
❓قالببندی SVG چیست؟
📏آیا فشردهسازی ظاهر SVG من را تغییر میدهد؟
🔒آیا SVG من به سرور آپلود میشود؟
🚀فشردهسازی چقدر در اندازه صرفهجویی میکند؟
⚠️آیا حذف `<metadata>` یا نظرات میتواند گردش کار من را مختل کند؟
Pro Tips
یک `icon.formatted.svg` فشردهنشده در مخزن خود نگه دارید برای diffهای تمیز، سپس `icon.min.svg` را به عنوان بخشی از مرحله ساخت تولید کنید.
همیشه عناصر معنادار `<title>` و `<desc>` را قبل از فشردهسازی شامل شوید تا SVGهای شما برای خوانندگان صفحه قابل دسترسی باقی بمانند.
فشردهسازی SVG را با فشردهسازی HTTP (Gzip/Brotli) ترکیب کنید تا بایتهای بیشتری از تصاویر و نمودارهای سنگین خارج کنید.
برای مجموعههای آیکون، یک استراتژی sprite در نظر بگیرید: یک بار فشرده کنید، سپس از طریق `<use>` به آیکونها ارجاع دهید به جای تکرار کد SVG در همه جا.
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
- قالببندی Swift
- قالببندی TOML
- Typescript Formatter
- قالببندی XML
- قالببندی YAML
- قالببندی Yarn
- کوچککننده CSS
- Html Minifier
- Javascript Minifier
- کوچککننده JSON
- کوچککننده XML
- نمایشگر هدرهای HTTP
- PDF به متن
- تستکننده Regex
- بررسیکننده رتبه SERP
- جستجوی Whois