Bộ định dạng & xác thực YAML
Dán YAML, định dạng với thụt lề 2 khoảng trắng hoặc xác thực cú pháp. Chế độ nghiêm ngặt YAML 1.2. Không tải lên.
- Dán YAML của bạn vào vùng văn bản bên trái.
- Bấm Định dạng để đi vòng qua bộ phân tích và phát ra YAML chuẩn.
- Bấm Xác thực để kiểm tra cú pháp mà không sửa đổi đầu vào.
- Lỗi chỉ ra dòng và cột bị lỗi.
Công cụ này làm gì?
Phân tích YAML của bạn bằng js-yaml ở chế độ nghiêm ngặt YAML 1.2 và phát ra lại với thụt lề 2 khoảng trắng, độ rộng dòng 100 cột, và trích dẫn nhất quán. Nút Xác thực kiểm tra cú pháp và báo cáo lỗi đầu tiên mà không thay đổi đầu vào. Đầu ra tương đương về mặt ngữ nghĩa với đầu vào — giá trị, kiểu và cấu trúc được giữ nguyên.
Ví dụ
Đầu vào YAML lộn xộn:
name: Ada
tags: [math,logic]
active:true Đầu ra đã định dạng:
name: Ada
tags:
- math
- logic
active: true Lỗi YAML thường gặp và cách khắc phục
YAML 1.2 ở chế độ nghiêm ngặt không tha thứ cho khoảng trắng. 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.
- Tab thay vì khoảng trắng. YAML 1.2 cấm tab cho thụt lề. Thay mỗi tab bằng khoảng trắng.
- Mức thụt lề không nhất quán. Một con thụt 2 khoảng trắng dưới một anh em thụt 4 khoảng trắng sẽ thất bại. Chọn một độ rộng và sử dụng nhất quán.
- Bẫy boolean. Trong YAML 1.1 (không phải chế độ ở đây), `yes`, `no`, `on`, `off` được phân tích thành boolean. js-yaml dùng 1.2, nhưng đầu vào thực tế phụ thuộc vào hành vi cũ làm người dùng bất ngờ. Trích dẫn các giá trị mơ hồ: `country: "NO"`.
- Ký tự đặc biệt không trích dẫn. Giá trị bắt đầu bằng `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` `` cần được trích dẫn.
- Dấu nháy không kết thúc. Dấu nháy đóng bị thiếu khiến bộ phân tích hấp thụ phần còn lại của tệp như một phần của chuỗi. Số dòng được báo có thể xa lỗi thực tế.
- Anchor / alias không khớp. Alias `*name` tham chiếu một anchor không được khai báo `&name` gây lỗi. Xác minh mỗi alias có anchor khớp được khai báo trước đó.
Câu hỏi thường gặp
Định dạng có thay đổi dữ liệu của tôi không?
Không — chỉ khoảng trắng, trích dẫn và thứ tự các chi tiết biểu diễn. Đồ thị giá trị đã phân tích là giống hệt. YAML đã định dạng được phân tích lại thành cấu trúc trong bộ nhớ giống bản gốc.
Bình luận có được giữ khi định dạng không?
Không. js-yaml không giữ bình luận qua một vòng parse-and-dump. Nếu bạn cần định dạng YAML giữ bình luận, dùng thư viện khác (yaml.js với tùy chọn, hoặc công cụ CLI như `prettier --parser yaml`).
Tôi có thể tùy chỉnh thụt lề không?
Bản dựng hiện tại dùng thụt lề 2 khoảng trắng. Để tùy chỉnh, chạy js-yaml trên dòng lệnh — cùng thư viện — và truyền `{ indent: 4 }` hoặc bất cứ thứ gì bạn cần.
Có thể xử lý tệp YAML lớn cỡ nào?
Đến khoảng 10 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.
YAML 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ủ.
Cái này có lint các vấn đề kiểu như khóa trùng lặp không?
js-yaml ở cấu hình mặc định sẽ từ chối khóa trùng lặp (yêu cầu nghiêm ngặt YAML 1.2). Các vấn đề kiểu khác như trích dẫn không nhất quán hoặc đặt tên anchor không bị đánh dấu — điều đó cần một linter chuyên dụng như yamllint.