TOML
2 ابزار
ابزارهای TOML در ToolDeck به شما امکان میدهند فایلهای پیکربندی TOML را مستقیماً در مرورگر خود فرمتبندی، اعتبارسنجی و تبدیل کنید — بدون نصب، بدون حساب کاربری، و بدون ارسال هیچ دادهای به هیچ سروری. TOML Formatter ورودی TOML شما را تجزیه کرده و با تورفتگی یکنواخت، مرتبسازی استاندارد کلیدها و خطاهای اعتبارسنجی درونخطی که مشکلات نحوی را دقیقاً مشخص میکند، دوباره سریالسازی میکند. TOML to JSON Converter اسناد TOML را به معادلهای JSON تبدیل میکند و انواع داده از جمله datetime، جداول درونخطی و آرایهای از جداول را حفظ میکند. هر دو ابزار کاملاً در سمت کلاینت اجرا میشوند، بنابراین فایلهای پیکربندی شما — که اغلب حاوی اعتبارنامههای پایگاه داده، آدرسهای API و رمزهای استقرار هستند — روی دستگاه شما باقی میمانند. اگر به تبدیل معکوس نیاز دارید، JSON to TOML Converter در دسته JSON آن تبدیل را انجام میدهد.
ابزارهای TOML چیستند؟
TOML (مخفف Tom's Obvious, Minimal Language) یک قالب فایل پیکربندی است که بر پایه نحو صریح و بدون ابهام ساخته شده است. این قالب توسط Tom Preston-Werner، یکی از بنیانگذاران GitHub، ایجاد شد، در سال ۲۰۱۳ اولین بار منتشر شد و در ژانویه ۲۰۲۱ به مشخصات نسخه ۱.۰ رسید. این قالب مستقیماً به یک جدول هش نگاشت میشود: هر فایل TOML یک درخت از جفتهای کلید-مقدار تعریف میکند که در جداول (بخشهایی که با [brackets] مشخص میشوند) سازماندهی شدهاند. برخلاف YAML، TOML برای ساختار به تورفتگی متکی نیست، که این امر یک دسته کامل از اشکالات تجزیه مرتبط با فضای خالی را از بین میبرد. برخلاف JSON، TOML از نظرات، انواع بومی تاریخ/زمان و رشتههای چند خطی پشتیبانی میکند — ویژگیهایی که فایلهای پیکربندی به آنها نیاز دارند اما JSON هرگز برای ارائه آنها طراحی نشده بود.
ابزارهای TOML خواندن، اعتبارسنجی و تبدیل فایلهای TOML را خودکار میکنند. ابزارهای فرمتبندی، تورفتگی و مرتبسازی کلیدها را استاندارد میکنند تا فایلهای پیکربندی در میان یک تیم خوانا بمانند، حتی زمانی که چندین مشارکتکننده همان فایل را ویرایش میکنند. ابزارهای تبدیل بین TOML و JSON ترجمه میکنند، که زمانی مفید است که یک کتابخانه یا API ورودی JSON انتظار دارد اما منبع اصلی شما یک پیکربندی TOML است. اعتبارسنجی خطاهای نحوی را میگیرد — یک براکت بسته از دست رفته، یک کلید تکراری، یا یک مقدار datetime نامعتبر — قبل از اینکه در هنگام راهاندازی برنامه باعث شکست شوند.
این وظایف در پروژههای Rust (که Cargo.toml مانیفست بسته است)، بستهبندی Python (که pyproject.toml جایگزین setup.py به عنوان پیکربندی استاندارد ساخت در PEP 518 و PEP 621 شده است)، سایتهای استاتیک Hugo (که بهطور پیشفرض از TOML برای پیکربندی سایت استفاده میکنند) و هر راهاندازی زیرساخت که پیکربندی را در فایلهای TOML ذخیره میکند، بهطور مکرر پیش میآیند. مشخصات TOML در toml.io نگهداری میشود و تجزیهکنندهها برای هر زبان برنامهنویسی اصلی وجود دارند.
چرا از ابزارهای TOML در ToolDeck استفاده کنیم؟
ابزارهای TOML در ToolDeck همه چیز را درون تب مرورگر شما با استفاده از JavaScript تجزیه و پردازش میکنند. هیچ داده پیکربندیای به سرور منتقل نمیشود، نیازی به حساب کاربری نیست و ابزارها پس از بارگذاری اولیه صفحه بهصورت آفلاین نیز کار میکنند.
موارد استفاده ابزارهای TOML
فرمتبندی، اعتبارسنجی و تبدیل TOML در نقشها و انواع پروژههای مختلف پیش میآید. توسعهدهندگان Rust روزانه با Cargo.toml کار میکنند. توسعهدهندگان Python ساخت و ابزارها را از طریق pyproject.toml پیکربندی میکنند. مهندسان DevOps پیکربندی برنامههایی را مدیریت میکنند که بهصورت TOML ارسال میشوند. وظایف زیر نشان میدهد که ابزارهای TOML مبتنی بر مرورگر در مقایسه با نوشتن یک اسکریپت یکبار مصرف یا نصب یک ابزار CLI چه زمانی صرفهجویی میکنند.
مرجع انواع داده TOML
TOML نسخه ۱.۰ انواع داده زیر را تعریف میکند. هر نوع هنگام تبدیل به JSON به یک نمایش خاص نگاشت میشود. جدول زیر نحو، مثالها و رفتار تبدیل را برای هر نوع TOML پوشش میدهد.
| نوع | نحو | مثال | نگاشت JSON |
|---|---|---|---|
| رشته | "..." یا '...' | name = "TOML" | رشته JSON. رشتههای پایه از دنبالههای escape پشتیبانی میکنند (\n، \t، \u). رشتههای تحتاللفظی ('...') بکاسلش را به عنوان کاراکتر تحتاللفظی در نظر میگیرند. |
| عدد صحیح | ارقام، 0x، 0o، 0b | port = 8080 | عدد JSON. از هگزادسیمال (0xDEAD)، اکتال (0o755)، باینری (0b1010) و جداکنندههای زیرخط (1_000) پشتیبانی میکند. |
| عدد اعشاری | ارقام با . یا e | pi = 3.14159 | عدد JSON. از inf، -inf و nan پشتیبانی میکند (در JSON به null یا رشته نگاشت میشود، چون JSON NaN ندارد). |
| بولی | true / false | enabled = true | بولی JSON. فقط true و false با حروف کوچک معتبر هستند. |
| تاریخ-زمان با افست | RFC 3339 | 2024-01-15T09:30:00Z | رشته JSON (ISO 8601). شامل افست منطقه زمانی. هیچ نوع datetime بومی در JSON وجود ندارد. |
| تاریخ-زمان محلی | date T time | 2024-01-15T09:30:00 | رشته JSON. بدون اطلاعات منطقه زمانی. برای زمانهای ساعت دیواری مفید است. |
| تاریخ محلی | YYYY-MM-DD | 2024-01-15 | رشته JSON. تاریخ بدون مؤلفه زمان. |
| زمان محلی | HH:MM:SS | 09:30:00 | رشته JSON. زمان بدون تاریخ یا منطقه زمانی. |
| آرایه | [value, ...] | ports = [8080, 8443] | آرایه JSON. آرایههای TOML در نسخه ۱.۰ میتوانند ناهمگن باشند اما در نسخه ۰.۵ باید همگن باشند. |
| جدول | tomlCategoryContent.r10Syntax | [database] | شیء JSON. جداول استاندارد از [brackets] استفاده میکنند. جداول درونخطی از آکولاد در یک خط واحد استفاده میکنند. |
مشخصات TOML نسخه ۱.۰.۰ (toml.io) نسخه پایدار فعلی است. آرایهای از جداول از [[double brackets]] برای تعریف ورودیهای جدول تکراری استفاده میکنند که به آرایههای JSON از اشیاء نگاشت میشوند.
چگونه ابزار TOML مناسب را انتخاب کنیم
ToolDeck سه ابزار دارد که با فایلهای TOML کار میکنند. دو ابزار در دسته TOML هستند و یکی در دسته JSON برای جهت تبدیل معکوس قرار دارد. ابزاری را انتخاب کنید که با وظیفه شما مطابقت دارد.
- 1اگر نیاز دارید یک فایل TOML را مجدداً تورفتگی دهید، ترتیب کلید را استاندارد کنید، یا نحو TOML را با گزارش خطا در سطح خط اعتبارسنجی کنید → TOML Formatter
- 2اگر نیاز دارید یک فایل پیکربندی TOML را به JSON تبدیل کنید تا در APIها، اسکریپتها یا ابزارهایی که ورودی JSON انتظار دارند استفاده شود → TOML to JSON Converter
- 3اگر نیاز دارید یک سند JSON را به قالب TOML تبدیل کنید برای پروژههایی که از TOML به عنوان استاندارد پیکربندی خود استفاده میکنند → JSON to TOML Converter
برای کار روزمره با TOML، TOML Formatter فرمتبندی و اعتبارسنجی را در یک مرحله انجام میدهد — TOML خود را بچسبانید و یا خروجی تمیز دریافت میکنید یا دقیقاً میفهمید خطای نحوی کجاست. وقتی نیاز دارید TOML و JSON را به هم متصل کنید، TOML to JSON Converter تمام انواع داده TOML از جمله datetime و جداول تو در تو را حفظ میکند. برای جهت معکوس (JSON به TOML)، از JSON to TOML Converter در دسته JSON استفاده کنید. اگر در حال رفع اشکال یک پیکربندی هستید که تجزیه نمیشود، با TOML Formatter شروع کنید: پیامهای خطای آن شامل شمارههای خط و توضیحات توکن مورد انتظار هستند که از آنچه اکثر تجزیهکنندههای TOML در سطح برنامه گزارش میدهند دقیقتر است.