TOML فارمیٹر اور ویلیڈیٹر
TOML پیسٹ کریں، TOML 1.0 کینونیکل لے آؤٹ میں فارمیٹ کریں، یا سنٹیکس چیک کریں۔ کوئی اپ لوڈ نہیں۔
- بائیں ٹیکسٹ ایریا میں اپنا TOML پیسٹ کریں۔
- فارمیٹ پر کلک کریں تاکہ @iarna/toml کے ذریعے راؤنڈ-ٹرپ ہو اور کینونیکل لے آؤٹ تیار ہو۔
- تصدیق پر کلک کریں ان پٹ کو تبدیل کیے بغیر سنٹیکس چیک کرنے کے لیے۔
- غلطیاں غلط لائن اور کالم کی نشاندہی کرتی ہیں۔
یہ کیا کرتا ہے؟
@iarna/toml کے TOML 1.0 موڈ میں آپ کا TOML پارس کرتا ہے اور کینونیکل لے آؤٹ کے ساتھ اسے دوبارہ ایمٹ کرتا ہے — کیز سب-ٹیبلز سے پہلے، مستقل کوٹنگ، انٹیجر انڈر سکورز ہٹا دیے گئے۔ تصدیق بٹن ان پٹ تبدیل کیے بغیر سپیک کے خلاف سنٹیکس چیک کرتا ہے۔ تبصرے راؤنڈ-ٹرپ کے دوران چھوڑ دیے جاتے ہیں (TOML فارمیٹرز عموماً پارس-اور-ڈمپ سائیکل کے ذریعے انہیں محفوظ نہیں رکھ سکتے)۔
مثال
بے ترتیب TOML ان پٹ:
[server]
host="localhost"
port=8080
name="myapp" فارمیٹڈ آؤٹ پٹ:
name = "myapp"
[server]
host = "localhost"
port = 8080 عام TOML غلطیاں اور انہیں کیسے ٹھیک کریں
TOML 1.0 کے قواعد YAML یا JSON سے زیادہ سخت ہیں۔ ذیل کے پیٹرنز زیادہ تر پارسر ناکامیوں کا احاطہ کرتے ہیں۔
- بغیر کوٹ کے سٹرنگز۔ `name = Ada` غلط ہے۔ ڈبل کوٹس استعمال کریں: `name = "Ada"`۔
- ٹیبل کو دوبارہ تعریف کرنا۔ `[a]` کو دو بار تعریف کرنا غلطی ہے۔ ہر ٹیبل ہیڈر زیادہ سے زیادہ ایک بار ظاہر ہو سکتا ہے۔ کیز کو ایک واحد `[a]` بلاک میں ضم کریں۔
- ٹیبل کے بعد ٹاپ-لیول کیز۔ ایک بار جب آپ `[section]` لکھتے ہیں، تمام بعد کی کیز اس سیکشن سے تعلق رکھتی ہیں۔ کیز کو ان کے پہلے ٹیبل ہیڈر سے پہلے آنا چاہیے۔ فارمیٹر آپ کے لیے اسے دوبارہ ترتیب دیتا ہے، لیکن کچی ان پٹ پہلے سے ہی درست ہونی چاہیے۔
- ٹائم زون کے بغیر ڈیٹ ٹائم۔ `d = 2026-04-26T12:00:00` (کوئی Z یا آفسیٹ نہیں) "مقامی ڈیٹ ٹائم" ہے۔ یہ پارس ہوتی ہے، لیکن JSON-سٹائل کے صارفین کے پاس مقامیت کو پیش کرنے کا کوئی طریقہ نہیں ہو سکتا۔ UTC کے لیے `2026-04-26T12:00:00Z` استعمال کریں۔
- ان لائن ٹیبل توسیع۔ ان لائن ٹیبلز `point = {x=1, y=2}` بند اور خود مکمل ہیں۔ آپ بعد میں `point.z = 3` نہیں لکھ سکتے۔ توسیع کے لیے معیاری `[point]` بلاک سنٹیکس استعمال کریں۔
- ٹرپل-کوٹ ایسکیپ الجھن۔ `"""..."""` (بنیادی ملٹی-لائن) ایسکیپ پراسیس کرتا ہے؛ `\'\'\'...\'\'\'` (لٹرل ملٹی-لائن) نہیں کرتا۔ دونوں کو ملانا سب سے عام ملٹی-لائن سٹرنگ غلطی ہے۔
اکثر پوچھے جانے والے سوالات
کیا فارمیٹ میرا ڈیٹا تبدیل کرتا ہے؟
صرف لے آؤٹ — کیز کو دوبارہ ترتیب دیا جاتا ہے تاکہ پرائمیٹیوز سب-ٹیبلز سے پہلے آئیں (ایک TOML قاعدہ)، اسپیسنگ معیاری بنائی جاتی ہے، انٹیجر انڈر سکورز ہٹا دیے جاتے ہیں (TOML معنویات)۔ اقدار خود تبدیل نہیں ہوتیں۔
کیا TOML تبصرے محفوظ ہیں؟
نہیں۔ @iarna/toml پارس-اور-ڈمپ راؤنڈ-ٹرپ کے دوران تبصروں کو چھوڑ دیتا ہے۔ اگر آپ کو تبصرہ-محفوظ کرنے والی فارمیٹنگ چاہیے تو آپ کو ایک مختلف لائبریری کی ضرورت ہوگی جو ماخذ کی پوزیشن کی معلومات برقرار رکھتی ہو۔
کیا یہ TOML 1.0 کے خلاف تصدیق کرتا ہے؟
جی ہاں۔ @iarna/toml TOML 1.0 کی پیروی کرتا ہے — مخلوط قسم کے ایرے، نقطے دار کیز، اور نظر ثانی شدہ سٹرنگ قواعد کی اجازت سمیت۔ TOML 0.5-صرف رویے پر منحصر ان پٹس (یکساں ایرے ضروری) یہاں بھی پارس ہوں گے، لیکن سخت 0.5 پارسرز پر ٹوٹ سکتے ہیں۔
یہ کتنی بڑی TOML فائل سنبھال سکتا ہے؟
ٹیکسٹ ایریا کے سست ہونے سے پہلے تقریباً 30 MB تک۔ زیادہ تر کنفگ فائلیں 1 MB سے کافی نیچے ہیں۔
کیا میرا TOML اپ لوڈ ہوتا ہے؟
نہیں۔ سب کچھ آپ کے براؤزر میں چلتا ہے — آپ کا ان پٹ اس صفحے کے JavaScript کے ذریعے پارس اور دوبارہ-سیریلائز ہوتا ہے اور کبھی کسی سرور پر نہیں بھیجا جاتا۔
فارمیٹر میری کیز کو کیوں دوبارہ ترتیب دیتا ہے؟
TOML 1.0 کی ضرورت ہے کہ ٹاپ-لیول کیز (پرائمیٹیوز) ایک ہی اسکوپ میں کسی بھی ٹیبل ہیڈر سے پہلے ظاہر ہوں۔ فارمیٹر سب-ٹیبلز کے آگے پرائمیٹیوز کو سورٹ کر کے یہ نافذ کرتا ہے۔ اگر آپ کے اصل ان پٹ کا ترتیب مختلف تھا، تو فارمیٹ مرحلہ اسے معیاری بناتا ہے۔