TOML
2 เครื่องมือ
เครื่องมือ TOML ของ ToolDeck ช่วยให้คุณจัดรูปแบบ ตรวจสอบ และแปลงไฟล์ config TOML ได้โดยตรงในเบราว์เซอร์ — ไม่ต้องติดตั้ง ไม่ต้องสมัครสมาชิก ไม่มีการอัปโหลดข้อมูลไปยังเซิร์ฟเวอร์ใดๆ TOML Formatter จะ parse input TOML ของคุณและ serialize ใหม่พร้อม indentation ที่สม่ำเสมอ การจัดลำดับ key ที่เป็นมาตรฐาน และข้อผิดพลาดการตรวจสอบ inline ที่ระบุปัญหาไวยากรณ์ได้ตรงจุด TOML to JSON Converter แปลงเอกสาร TOML ให้อยู่ในรูปแบบ JSON ที่เทียบเท่า โดยรักษาประเภทข้อมูลรวมถึง datetime, inline table และ array of table เครื่องมือทั้งสองทำงานในฝั่ง client ทั้งหมด ทำให้ไฟล์ config ของคุณ — ซึ่งมักมี credential ฐานข้อมูล, API endpoint และความลับสำหรับ deployment — อยู่บนเครื่องของคุณเท่านั้น หากต้องการแปลงในทิศทางตรงข้าม JSON to TOML Converter ในหมวด JSON จัดการการแปลงนั้น
เครื่องมือ TOML คืออะไร?
TOML (Tom's Obvious, Minimal Language) คือรูปแบบไฟล์ config ที่สร้างขึ้นรอบไวยากรณ์ที่ชัดเจนและไม่คลุมเครือ สร้างโดย Tom Preston-Werner ผู้ร่วมก่อตั้ง GitHub โดย TOML ได้รับการเผยแพร่ครั้งแรกในปี 2013 และเข้าสู่ข้อกำหนด 1.0 ในเดือนมกราคม 2021 รูปแบบนี้แมปตรงกับ hash table โดยไม่คลุมเครือ: ทุกไฟล์ TOML จะกำหนดโครงสร้างแบบต้นไม้ของคู่ key-value ที่จัดเป็น table (ส่วนที่ทำเครื่องหมายด้วย [วงเล็บ]) ต่างจาก YAML ตรงที่ TOML ไม่พึ่งพา indentation สำหรับโครงสร้าง ซึ่งขจัดปัญหาที่เกิดจาก whitespace ได้ทั้งชั้น ต่างจาก JSON ตรงที่ TOML รองรับ comment, ประเภท date/time ในตัว และ string หลายบรรทัด — คุณสมบัติที่ไฟล์ config ต้องการแต่ JSON ไม่ได้ออกแบบมาให้รองรับ
เครื่องมือ TOML ทำให้งานเชิงกลของการอ่าน ตรวจสอบ และแปลงไฟล์ TOML เป็นไปโดยอัตโนมัติ เครื่องมือจัดรูปแบบทำให้ indentation และการจัดลำดับ key เป็นมาตรฐาน เพื่อให้ไฟล์ config อ่านได้ทั่วทั้งทีมแม้ผู้มีส่วนร่วมหลายคนจะแก้ไขไฟล์เดียวกัน เครื่องมือแปลงจะแปลระหว่าง TOML และ JSON ซึ่งมีประโยชน์เมื่อ library หรือ API รับ JSON เป็น input แต่แหล่งข้อมูลหลักของคุณเป็น config TOML การตรวจสอบจะตรวจพบข้อผิดพลาดทาง syntax — วงเล็บปิดที่หายไป key ซ้ำ หรือ datetime literal ที่ไม่ถูกต้อง — ก่อนที่จะทำให้เกิดความล้มเหลวเมื่อแอปพลิเคชันเริ่มต้น
งานเหล่านี้เกิดขึ้นบ่อยในโปรเจกต์ Rust (ซึ่ง Cargo.toml คือ package manifest), Python packaging (pyproject.toml แทนที่ setup.py ในฐานะ build configuration มาตรฐานตาม PEP 518 และ PEP 621), Hugo static site (ซึ่งใช้ TOML สำหรับ site configuration โดยค่าเริ่มต้น) และการตั้งค่า infrastructure ใดๆ ที่จัดเก็บ config ในไฟล์ TOML ข้อกำหนด TOML ดูแลรักษาที่ toml.io และมี parser สำหรับทุกภาษาโปรแกรมหลัก
ทำไมต้องใช้เครื่องมือ TOML บน ToolDeck?
เครื่องมือ TOML ของ ToolDeck parse และประมวลผลทุกอย่างภายใน tab เบราว์เซอร์ของคุณโดยใช้ JavaScript ไม่มีการส่งข้อมูล config ไปยังเซิร์ฟเวอร์ ไม่ต้องสมัครสมาชิก และเครื่องมือทำงานออฟไลน์ได้หลังจากโหลดหน้าครั้งแรก
กรณีการใช้งานเครื่องมือ TOML
การจัดรูปแบบ ตรวจสอบ และแปลง TOML เกิดขึ้นในบทบาทและประเภทโปรเจกต์ที่หลากหลาย นักพัฒนา Rust ทำงานกับ Cargo.toml ทุกวัน นักพัฒนา Python กำหนด build และเครื่องมือผ่าน pyproject.toml วิศวกร DevOps จัดการ config แอปพลิเคชันที่ส่งเป็น TOML งานด้านล่างแสดงให้เห็นว่าเครื่องมือ TOML บนเบราว์เซอร์ประหยัดเวลาได้อย่างไรเมื่อเทียบกับการเขียน script เองหรือติดตั้ง CLI tool
ตารางอ้างอิงประเภทข้อมูล TOML
TOML v1.0 กำหนดประเภทข้อมูลดังต่อไปนี้ แต่ละประเภทแมปกับรูปแบบเฉพาะเมื่อแปลงเป็น JSON ตารางด้านล่างครอบคลุมไวยากรณ์ ตัวอย่าง และพฤติกรรมการแปลงสำหรับแต่ละประเภข TOML
| ประเภท | ไวยากรณ์ | ตัวอย่าง | การแมป JSON |
|---|---|---|---|
| String | "..." หรือ '...' | name = "TOML" | JSON string Basic string รองรับ escape sequence (\n, \t, \u) Literal string ('...') ถือ backslash เป็นอักษรตัวอักษร |
| Integer | ตัวเลข, 0x, 0o, 0b | port = 8080 | JSON number รองรับเลขฐาน 16 (0xDEAD) ฐาน 8 (0o755) ฐาน 2 (0b1010) และตัวคั่นขีดล่าง (1_000) |
| Float | ตัวเลขที่มี . หรือ e | pi = 3.14159 | JSON number รองรับ inf, -inf และ nan (แมปเป็น null หรือ string ใน JSON เนื่องจาก JSON ไม่มี NaN) |
| Boolean | true / false | enabled = true | JSON boolean ใช้ได้เฉพาะ true และ false ตัวพิมพ์เล็กเท่านั้น |
| Offset Date-Time | RFC 3339 | 2024-01-15T09:30:00Z | JSON string (ISO 8601) รวม timezone offset ไม่มีประเภท datetime ในตัวของ JSON |
| Local Date-Time | date T time | 2024-01-15T09:30:00 | JSON string ไม่มีข้อมูล timezone มีประโยชน์สำหรับเวลาตาม wall clock |
| Local Date | YYYY-MM-DD | 2024-01-15 | JSON string วันที่โดยไม่มีส่วนของเวลา |
| Local Time | HH:MM:SS | 09:30:00 | JSON string เวลาโดยไม่มีวันที่หรือ timezone |
| Array | [value, ...] | ports = [8080, 8443] | JSON array Array ของ TOML สามารถมีประเภทข้อมูลผสมกันใน TOML v1.0 แต่ต้องเป็นประเภทเดียวกันใน v0.5 |
| Table | tomlCategoryContent.r10Syntax | [database] | JSON object Standard table ใช้ [วงเล็บ] Inline table ใช้วงเล็บปีกกาในบรรทัดเดียว |
ข้อกำหนด TOML v1.0.0 (toml.io) คือเวอร์ชันเสถียรปัจจุบัน Array of table ใช้ [[วงเล็บคู่]] เพื่อกำหนด table entry ซ้ำ ซึ่งแมปกับ JSON array ของ object
วิธีเลือกเครื่องมือ TOML ที่เหมาะสม
ToolDeck มีเครื่องมือสามตัวที่ทำงานกับไฟล์ TOML สองตัวอยู่ในหมวด TOML และหนึ่งตัวอยู่ในหมวด JSON สำหรับการแปลงในทิศทางตรงข้าม เลือกเครื่องมือที่ตรงกับงานของคุณ
- 1หากคุณต้องการ จัด indent ไฟล์ TOML ใหม่ ทำให้ลำดับ key เป็นมาตรฐาน หรือตรวจสอบไวยากรณ์ TOML พร้อมรายงานข้อผิดพลาดระดับบรรทัด → TOML Formatter
- 2หากคุณต้องการ แปลงไฟล์ config TOML เป็น JSON เพื่อใช้ใน API, script หรือเครื่องมือที่รับ JSON เป็น input → TOML to JSON Converter
- 3หากคุณต้องการ แปลงเอกสาร JSON เป็นรูปแบบ TOML สำหรับโปรเจกต์ที่ใช้ TOML เป็นมาตรฐาน config → JSON to TOML Converter
สำหรับงาน TOML ทั่วไป TOML Formatter จัดการการจัดรูปแบบและการตรวจสอบในขั้นตอนเดียว — วาง TOML ของคุณ แล้วจะได้รับผลลัพธ์ที่สะอาดหรือข้อมูลว่าข้อผิดพลาดทาง syntax อยู่ที่ไหน เมื่อต้องการเชื่อม TOML และ JSON TOML to JSON Converter จะรักษาประเภทข้อมูล TOML ทั้งหมดรวมถึง datetime และ table ซ้อนกัน สำหรับทิศทางตรงข้าม (JSON to TOML) ใช้ JSON to TOML Converter ในหมวด JSON หากกำลังดีบัก config ที่ parse ล้มเหลว เริ่มจาก TOML Formatter: ข้อความผิดพลาดรวมหมายเลขบรรทัดและคำอธิบาย expected token ที่เจาะจงกว่า parser ระดับแอปพลิเคชันส่วนใหญ่รายงาน