TOML ফরম্যাটার ও ভ্যালিডেটর

TOML পেস্ট করুন, TOML 1.0 ক্যানোনিকাল লেআউটে ফরম্যাট করুন, অথবা সিনট্যাক্স যাচাই করুন। কোনো আপলোড নেই।

  1. বাম টেক্সট এরিয়ায় আপনার TOML পেস্ট করুন।
  2. ফরম্যাট ক্লিক করুন যাতে @iarna/toml-এর মধ্য দিয়ে রাউন্ড-ট্রিপ হয়ে ক্যাননিকাল লেআউট তৈরি হয়।
  3. যাচাই ক্লিক করুন ইনপুট পরিবর্তন না করেই সিনট্যাক্স পরীক্ষা করতে।
  4. ত্রুটি ভুল লাইন এবং কলামের দিকে ইঙ্গিত করে।
এটি কী করে?

@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-এর প্রয়োজন যে শীর্ষ-স্তরের কী (প্রিমিটিভ) একই স্কোপের মধ্যে যেকোনো টেবিল হেডারের আগে দেখা যাবে। ফরম্যাটার সাব-টেবিলের আগে প্রিমিটিভ সাজিয়ে এটি প্রয়োগ করে। আপনার মূল ইনপুটের ক্রম ভিন্ন থাকলে, ফরম্যাট ধাপ এটিকে স্বাভাবিক করে।