TOML
2 أدوات
تتيح لك أدوات TOML في ToolDeck تنسيق ملفات إعدادات TOML والتحقق من صحتها وتحويلها مباشرةً في متصفحك — بدون تثبيت، ولا حساب، ولا رفع بيانات إلى أي خادم. يحلّل TOML Formatter مدخلات TOML ويُعيد تسلسلها بمسافة بادئة متسقة، وترتيب موحد للمفاتيح، وأخطاء تحقق مضمّنة تحدد مكان مشكلات بناء الجملة بدقة. أما TOML to JSON Converter فيحول مستندات TOML إلى ما يعادلها في JSON، مع الحفاظ على أنواع البيانات بما فيها التواريخ والأوقات والجداول المضمّنة ومصفوفات الجداول. تعمل كلتا الأداتين بالكامل على جانب العميل، مما يعني أن ملفات الإعداد الخاصة بك — التي كثيراً ما تحتوي على بيانات اعتماد قواعد البيانات ونقاط نهاية API وأسرار النشر — تبقى على جهازك. إذا كنت بحاجة إلى التحويل في الاتجاه العكسي، فإن JSON to TOML Converter الموجود في فئة JSON يتولى ذلك.
ما هي أدوات TOML؟
TOML (اختصار لـ Tom's Obvious, Minimal Language) هو تنسيق ملفات إعداد مبني على بناء جملة صريح وغير مبهم. أنشأه Tom Preston-Werner، أحد مؤسسي GitHub، وصدر للمرة الأولى عام 2013، وبلغ مواصفته 1.0 في يناير 2021. يُربط هذا التنسيق بوضوح بجدول تجزئة: يُعرِّف كل ملف TOML شجرة من أزواج المفتاح-القيمة مُنظَّمة في جداول (أقسام محددة بـ [أقواس مربعة]). على عكس YAML، لا يعتمد TOML على المسافة البادئة لتحديد البنية، مما يُزيل تماماً الفئة الكاملة من أخطاء التحليل المرتبطة بالمسافات البيضاء. وعلى عكس JSON، يدعم TOML التعليقات وأنواع التاريخ/الوقت الأصيلة والسلاسل النصية متعددة الأسطر — وهي ميزات تحتاجها ملفات الإعداد لكن JSON لم يُصمَّم في الأصل لتوفيرها.
تُغني أدوات TOML عن المهام الروتينية المتعلقة بقراءة ملفات TOML والتحقق من صحتها وتحويلها. تُوحِّد أدوات التنسيق المسافة البادئة وترتيب المفاتيح لتبقى ملفات الإعداد قابلة للقراءة من قِبل الفريق بأكمله، حتى حين يحرر عدة مساهمين الملف ذاته. تُترجم أدوات التحويل بين TOML وJSON، وهو أمر مفيد حين تتوقع مكتبة أو واجهة برمجية مدخلات JSON بينما مصدر الحقيقة هو إعداد TOML. يكشف التحقق عن أخطاء بناء الجملة — قوس إغلاق مفقود، أو مفتاح مكرر، أو قيمة تاريخ/وقت غير صالحة — قبل أن تتسبب في فشل التطبيق عند بدء تشغيله.
تظهر هذه المهام بصورة متكررة في مشاريع 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 v1.0 أنواع البيانات التالية. يُربط كل نوع بتمثيل محدد عند التحويل إلى JSON. يشمل الجدول أدناه بناء الجملة والأمثلة وسلوك التحويل لكل نوع من أنواع TOML.
| النوع | بناء الجملة | مثال | ربط JSON |
|---|---|---|---|
| String (سلسلة نصية) | "..." أو '...' | name = "TOML" | سلسلة JSON. تدعم السلاسل الأساسية تسلسلات الهروب (\n, \t, \u). تعامل السلاسل الحرفية ('...') الشرطة المائلة العكسية كأحرف حرفية. |
| Integer (عدد صحيح) | digits, 0x, 0o, 0b | port = 8080 | رقم JSON. يدعم النظام السداسي عشر (0xDEAD) والثماني (0o755) والثنائي (0b1010) وفواصل الشرطة السفلية (1_000). |
| Float (عدد عشري) | digits with . or e | pi = 3.14159 | رقم JSON. يدعم inf و-inf وnan (يُربط بـ null أو سلسلة في JSON لأن JSON لا يدعم NaN). |
| Boolean (منطقي) | true / false | enabled = true | قيمة منطقية JSON. true وfalse بأحرف صغيرة فقط هما القيمتان الصالحتان. |
| Offset Date-Time | RFC 3339 | 2024-01-15T09:30:00Z | سلسلة JSON (ISO 8601). تتضمن إزاحة المنطقة الزمنية. لا يوجد نوع تاريخ/وقت أصيل في JSON. |
| Local Date-Time | date T time | 2024-01-15T09:30:00 | سلسلة JSON. بدون معلومات المنطقة الزمنية. مفيدة لأوقات الساعة الحائطية. |
| Local Date | YYYY-MM-DD | 2024-01-15 | سلسلة JSON. تاريخ بدون مكون الوقت. |
| Local Time | HH:MM:SS | 09:30:00 | سلسلة JSON. وقت بدون تاريخ أو منطقة زمنية. |
| Array (مصفوفة) | [value, ...] | ports = [8080, 8443] | مصفوفة JSON. يمكن أن تكون مصفوفات TOML متغايرة الأنواع في TOML v1.0، لكنها كانت مقيدة بأنواع متجانسة في v0.5. |
| Table (جدول) | tomlCategoryContent.r10Syntax | [database] | كائن JSON. تستخدم الجداول القياسية [أقواساً مربعة]. تستخدم الجداول المضمّنة أقواساً متعرجة في سطر واحد. |
مواصفة TOML v1.0.0 (toml.io) هي الإصدار الثابت الحالي. تستخدم مصفوفات الجداول [[أقواساً مزدوجة]] لتعريف إدخالات جدول متكررة، تُربط بمصفوفات JSON من الكائنات.
كيف تختار أداة TOML المناسبة
تمتلك ToolDeck ثلاث أدوات تعمل مع ملفات TOML. اثنتان منها في فئة TOML، وواحدة في فئة JSON للتحويل في الاتجاه العكسي. اختر الأداة التي تناسب مهمتك.
- 1إذا كنت بحاجة إلى إعادة ضبط مسافة بادئة في ملف TOML، أو توحيد ترتيب المفاتيح، أو التحقق من صحة بناء جملة TOML مع تقارير أخطاء على مستوى السطر → TOML Formatter
- 2إذا كنت بحاجة إلى تحويل ملف إعداد TOML إلى JSON للاستخدام في واجهات برمجية أو سكريبتات أو أدوات تتوقع مدخلات JSON → TOML to JSON Converter
- 3إذا كنت بحاجة إلى تحويل مستند JSON إلى تنسيق TOML للمشاريع التي تستخدم TOML كمعيار إعداد → JSON to TOML Converter
للعمل اليومي مع TOML، يتولى TOML Formatter التنسيق والتحقق في خطوة واحدة — الصق TOML وسيُنتج إما مخرجات نظيفة أو يُخبرك تحديداً بمكان خطأ بناء الجملة. حين تحتاج إلى ربط TOML بـ JSON، يحافظ TOML to JSON Converter على جميع أنواع بيانات TOML بما فيها التواريخ والأوقات والجداول المتداخلة. للتحويل في الاتجاه العكسي (من JSON إلى TOML)، استخدم JSON to TOML Converter في فئة JSON. إذا كنت تصحح أخطاء إعداد يفشل في التحليل، ابدأ بـ TOML Formatter: رسائل خطأه تتضمن أرقام الأسطر وأوصاف الرمز المتوقع، وهي أكثر تحديداً مما تُبلغه معظم مُحللات TOML على مستوى التطبيق.