Định dạng TOML

Dán TOML và khoảng trắng được chuẩn hóa — khóa, chuỗi và giá trị giữ nguyên.

Cách sử dụng

  1. Dán TOML vào ô — nó được định dạng ngay khi bạn gõ, không có nút nào cần bấm.
  2. Chọn 2 hoặc 4 dấu cách cho mảng nhiều dòng, và bật “Căn dấu =” nếu bạn muốn các dấu bằng thẳng hàng; kết quả cập nhật tức thì.
  3. Nếu có gì đó sai, thông báo nêu dòng, cột và lý do. Sao chép kết quả hoặc tải xuống dưới dạng tệp .toml.

Ví dụ

Đầu vào

[package]
name="ykit"
version = "0.1.0"
edition="2021"
authors = ["Nguyễn Văn Minh <minh@example.com>",  "Trần Thị Lan <lan@example.com>"]
keywords=["tools",   "toml"]

[dependencies]
serde={version="1.0",features=["derive"]}

Đã định dạng

[package]
name = "ykit"
version = "0.1.0"
edition = "2021"
authors = ["Nguyễn Văn Minh <minh@example.com>", "Trần Thị Lan <lan@example.com>"]
keywords = ["tools", "toml"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }

Chỉ dùng quy tắc mặc định: hai dấu cách và không căn. Thứ tự khóa, nội dung chuỗi và thứ tự mảng không bị đổi; bảng nội tuyến chỉ được chuẩn hóa khoảng trắng và không bao giờ thêm dấu phẩy cuối.

Quy tắc, giới hạn và các vấn đề đã biết

  • Chỉ kiểm tra cú pháp và xung đột khóa/bảng: khóa lặp, bảng định nghĩa hai lần, khóa xung đột với bảng, chuỗi và escape, số, ngày, mảng và bảng nội tuyến. Không lược đồ, không ngữ nghĩa nghiệp vụ, không tự động sửa.
  • Chỉ khoảng trắng ngoài chuỗi và chú thích được viết lại. Thứ tự khóa, thứ tự bảng, khóa trần so với khóa có nháy, dấu phân cách chuỗi và escape, cách viết số/ngày/boolean và nội dung chú thích được sao chép từng ký tự.
  • Mảng một dòng vẫn nằm trên một dòng; mảng nhiều dòng giữ mỗi dòng một mục cùng chú thích và dấu phẩy cuối. Bảng nội tuyến được in trên một dòng, nên mảng bên trong nó bị dồn về một dòng; xuống dòng trong chuỗi nhiều dòng là nội dung và giữ nguyên, điều này có thể làm bảng nội tuyến trải qua nhiều dòng.
  • Một xuống dòng hoặc chú thích bên trong bảng nội tuyến là lỗi cú pháp (bản thân TOML cấm cả hai). Chú thích cuối dòng giữ một dấu cách sau mã, và khoảng trắng ở cuối chú thích bị xóa.
  • Các dãy dòng trống được gộp thành một, dòng trống đầu và cuối bị bỏ, và không bao giờ thêm dòng trống giữa các bảng.
  • Một mảng, bảng nội tuyến hoặc chuỗi nhiều dòng chưa đóng ở cuối, tiêu đề bảng bị cắt cụt, một dòng `key =` trần, hay đường dẫn khóa bị cắt ngay sau dấu chấm đều là cảnh báo, không phải lỗi: bạn vẫn nhận kết quả. Lỗi thật (thiếu dấu phẩy, giá trị không có nháy, ngày sai) là lỗi kèm dòng và cột. Chỉ lỗi đầu tiên được báo.
  • Số dòng và cột đếm theo điểm mã Unicode, nên một emoji là một cột; CRLF được tính là một lần xuống dòng. Chỉ dấu cách và tab là khoảng trắng TOML: U+3000 và U+00A0 ngoài chuỗi là lỗi, còn bên trong chuỗi là nội dung.
  • Khóa trần chỉ dùng ASCII — khóa tiếng Trung hay tiếng Ả Rập phải đặt trong ngoặc kép, đây là quy định của chính TOML chứ không phải sở thích của công cụ. Số và ngày không bao giờ bị viết lại hay đổi sang hệ chữ số khác.
  • Không thu gọn, không sắp xếp khóa, không chuẩn hóa giá trị, không tải tệp lên, không tham số URL, không lịch sử. Mọi thứ chạy trong trình duyệt: không gì được tải lên hay lưu lại.
  • Trên 200.000 ký tự, kết quả cập nhật khoảng 0,6 giây sau khi bạn ngừng gõ; văn bản không bao giờ bị cắt bớt. Đầu ra dùng LF, không có dòng mới ở cuối, và việc định dạng có tính idempotent với cùng cài đặt căn và thụt lề.

Những việc thường cần làm tiếp sau khi tệp cấu hình đã dễ đọc.