Bộ định dạng & xác thực TOML

Dán TOML, định dạng với bố cục chuẩn TOML 1.0, hoặc xác thực cú pháp. Không tải lên.

  1. Dán TOML của bạn vào vùng văn bản bên trái.
  2. Bấm Định dạng để đi vòng qua @iarna/toml và tạo bố cục chuẩn.
  3. Bấm Xác thực để kiểm tra cú pháp mà không sửa đổi đầu vào.
  4. Lỗi chỉ ra dòng và cột bị lỗi.
Công cụ này làm gì?

Phân tích TOML của bạn bằng @iarna/toml ở chế độ TOML 1.0 và phát ra lại với bố cục chuẩn — khóa trước các bảng con, trích dẫn nhất quán, dấu gạch dưới số nguyên bị loại bỏ. Nút Xác thực kiểm tra cú pháp theo đặc tả mà không thay đổi đầu vào. Bình luận bị bỏ trong quá trình đi vòng (bộ định dạng TOML thường không thể giữ chúng qua một vòng parse-and-dump).

Ví dụ

Đầu vào TOML lộn xộn:

[server]
host="localhost"
port=8080

name="myapp"

Đầu ra đã định dạng:

name = "myapp"

[server]
host = "localhost"
port = 8080

Lỗi TOML thường gặp và cách khắc phục

TOML 1.0 có quy tắc nghiêm ngặt hơn YAML hoặc JSON. Các mẫu dưới đây bao gồm hầu hết các lỗi của bộ phân tích.

  • Chuỗi không có dấu nháy. `name = Ada` không hợp lệ. Dùng dấu nháy đôi: `name = "Ada"`.
  • Định nghĩa lại bảng. Định nghĩa `[a]` hai lần là lỗi. Mỗi tiêu đề bảng có thể xuất hiện nhiều nhất một lần. Hợp nhất các khóa vào một khối `[a]` duy nhất.
  • Khóa cấp cao nhất sau một bảng. Một khi bạn viết `[section]`, tất cả các khóa tiếp theo thuộc về phần đó. Khóa phải đến trước tiêu đề bảng đầu tiên của chúng. Bộ định dạng sắp xếp lại điều này cho bạn, nhưng đầu vào thô đã phải hợp lệ.
  • Datetime không có múi giờ. `d = 2026-04-26T12:00:00` (không có Z hoặc offset) là "datetime cục bộ". Phân tích được, nhưng người tiêu dùng kiểu JSON có thể không có cách biểu diễn tính cục bộ. Dùng `2026-04-26T12:00:00Z` cho UTC.
  • Mở rộng bảng inline. Bảng inline `point = {x=1, y=2}` đã đóng và tự chứa. Bạn không thể viết `point.z = 3` sau đó. Dùng cú pháp khối tiêu chuẩn `[point]` để mở rộng.
  • Nhầm lẫn thoát dấu nháy ba. `"""..."""` (multi-line cơ bản) xử lý thoát; `\'\'\'...\'\'\'` (multi-line nguyên văn) thì không. Trộn hai cái là lỗi multi-line phổ biến nhất.
Câu hỏi thường gặp

Định dạng có thay đổi dữ liệu của tôi không?

Chỉ bố cục — khóa được sắp xếp lại để đặt nguyên thủy trước các bảng con (quy tắc TOML), khoảng cách được chuẩn hóa, dấu gạch dưới số nguyên bị loại bỏ (ngữ nghĩa TOML). Bản thân giá trị không thay đổi.

Bình luận TOML có được giữ không?

Không. @iarna/toml bỏ bình luận trong vòng parse-and-dump. Nếu bạn cần định dạng giữ bình luận, bạn cần một thư viện khác giữ thông tin vị trí nguồn.

Cái này có xác thực dựa trên TOML 1.0 không?

Có. @iarna/toml tuân theo TOML 1.0 — bao gồm cho phép mảng kiểu hỗn hợp, khóa chấm và quy tắc chuỗi đã sửa đổi. Đầu vào phụ thuộc vào hành vi chỉ TOML 0.5 (mảng đồng nhất bắt buộc) vẫn sẽ phân tích ở đây, nhưng có thể hỏng trên các bộ phân tích 0.5 nghiêm ngặt hơn.

Có thể xử lý tệp TOML lớn cỡ nào?

Đến khoảng 30 MB trước khi textarea chậm lại. Hầu hết tệp cấu hình dưới 1 MB nhiều.

TOML của tôi có được tải lên không?

Không. Mọi thứ chạy trong trình duyệt của bạn — đầu vào của bạn được phân tích và tuần tự lại bởi JavaScript trên trang này và không bao giờ gửi đến máy chủ.

Tại sao bộ định dạng sắp xếp lại các khóa của tôi?

TOML 1.0 yêu cầu các khóa cấp cao nhất (nguyên thủy) xuất hiện trước bất kỳ tiêu đề bảng nào trong cùng phạm vi. Bộ định dạng thực thi điều này bằng cách sắp xếp các nguyên thủy đứng trước các bảng con. Nếu đầu vào gốc của bạn có thứ tự khác, bước định dạng chuẩn hóa nó.