Định dạng & Nén YAML
Công cụ định dạng, nén và kiểm tra YAML online miễn phí. Format, nén và xác thực YAML, hiển thị chính xác dòng và cột lỗi cú pháp cho Kubernetes, Docker.
Định dạng YAML - Format và Làm đẹp YAML Online
Công cụ định dạng, nén và kiểm tra YAML online mạnh mẽ giúp bạn làm đẹp, nén và xác thực code YAML. Trình kiểm tra phân tích file bằng bộ phân tích YAML thực và báo cáo chính xác dòng và cột khi phân tích thất bại. Có tính năng tô sáng cú pháp và tùy chỉnh thụt lề. Hoàn hảo cho lập trình viên, kỹ sư DevOps và bất kỳ ai làm việc với file cấu hình YAML của Kubernetes, Docker Compose, CI/CD, Ansible hoặc OpenAPI.
YAML là gì?
YAML (YAML Ain't Markup Language) là ngôn ngữ tuần tự hóa dữ liệu dễ đọc đối với con người. Nó thường được sử dụng cho:
- File cấu hình (Docker, Kubernetes, CI/CD)
- Trao đổi dữ liệu giữa các ngôn ngữ lập trình
- Cài đặt và preferences ứng dụng
- Infrastructure as Code (Ansible, Terraform)
- Đặc tả API (OpenAPI/Swagger)
- Static site generator (Jekyll, Hugo)
YAML được thiết kế để dễ đọc và viết. Nó sử dụng thụt lề (khoảng trắng, không phải tab) để biểu diễn cấu trúc và hỗ trợ:
- Cặp key-value
- Danh sách (mảng)
- Cấu trúc lồng nhau
- Nhiều kiểu dữ liệu (chuỗi, số, boolean)
- Comment với #
- Chuỗi nhiều dòng
Công cụ định dạng YAML này làm gì?
Công cụ này cung cấp hai chức năng chính:
1. Định dạng (Làm đẹp): Lấy YAML được định dạng kém và làm cho nó dễ đọc với thụt lề và khoảng cách phù hợp. Bạn có thể chọn kích thước thụt lề (2, 4 hoặc 8 khoảng trắng) và tùy chọn giữ nguyên hoặc xóa comment.
2. Nén: Loại bỏ khoảng trắng không cần thiết và dòng trống để tạo file YAML gọn hơn. Tùy chọn xóa comment. Hữu ích để giảm kích thước file trong khi vẫn duy trì tính dễ đọc.
Lưu ý: YAML dựa vào thụt lề cho cấu trúc, vì vậy việc nén có giới hạn. Không giống như JSON hoặc XML, bạn không thể xóa tất cả khoảng trắng. Công cụ này tối ưu hóa YAML trong khi vẫn giữ nó hợp lệ.
Cả hai chức năng đều bao gồm tô sáng cú pháp cho key, value, comment và ký tự đặc biệt.
Làm thế nào để định dạng YAML?
Định dạng YAML rất đơn giản:
1. Dán hoặc gõ code YAML của bạn vào trường nhập
2. Chọn kích thước thụt lề ưa thích (2, 4 hoặc 8 khoảng trắng)
3. Tùy chọn chọn/bỏ chọn 'Giữ nguyên comment'
4. Nhấp vào nút 'Định dạng'
5. Xem YAML được định dạng đẹp mắt trong phần kết quả
YAML được định dạng sẽ có:
- Thụt lề nhất quán trong toàn bộ
- Khoảng cách phù hợp để dễ đọc
- Tô sáng cú pháp cho key, value và comment
- Cấu trúc dễ đọc
Lưu ý: YAML sử dụng khoảng trắng để thụt lề, không bao giờ tab. Công cụ định dạng này tự động sử dụng khoảng trắng.
Tại sao thụt lề YAML quan trọng?
Trong YAML, thụt lề không chỉ để dễ đọc - nó định nghĩa cấu trúc và lồng nhau của dữ liệu:
Thụt lề đúng:
parent:
child1: value1
child2: value2
Thụt lề sai (lỗi cú pháp):
parent:
child1: value1
child2: value2
Quy tắc chính:
- Chỉ sử dụng khoảng trắng, không bao giờ tab
- Phải nhất quán (sử dụng cùng kích thước thụt lề trong toàn bộ)
- Phần tử con phải được thụt lề nhiều hơn phần tử cha
- Các item ở cùng cấp độ phải có thụt lề giống nhau
Trộn lẫn tab và khoảng trắng hoặc thụt lề không nhất quán sẽ gây lỗi phân tích. Công cụ định dạng này đảm bảo khoảng cách nhất quán trong toàn bộ YAML của bạn.
'Giữ nguyên comment' có nghĩa là gì?
Tùy chọn 'Giữ nguyên comment' điều khiển việc comment YAML được giữ lại hay xóa bỏ:
Với giữ nguyên comment (đã chọn):
# Cấu hình database
db:
host: localhost # Địa chỉ server
port: 5432
Không giữ nguyên comment (bỏ chọn):
db:
host: localhost
port: 5432
Khi nào giữ nguyên:
- Trong quá trình phát triển và gỡ lỗi
- Khi comment chứa tài liệu quan trọng
- Đối với file cấu hình cần giải thích
Khi nào xóa bỏ:
- Để giảm kích thước file một chút
- Để có output sạch hơn
- Khi comment là ghi chú tạm thời
Lưu ý: Comment YAML bắt đầu bằng # và tiếp tục đến cuối dòng.
YAML vs JSON - nên dùng cái nào?
YAML và JSON phục vụ mục đích tương tự nhưng có điểm mạnh khác nhau:
Ưu điểm YAML:
- Dễ đọc và viết hơn đối với con người
- Hỗ trợ comment
- Ít verbose hơn (không cần dấu ngoặc kép, ngoặc nhọn, dấu phẩy)
- Tốt hơn cho file cấu hình
- Hỗ trợ kiểu dữ liệu phức tạp
- Chuỗi nhiều dòng dễ dàng hơn
Ưu điểm JSON:
- Cú pháp đơn giản hơn (dễ phân tích hơn)
- Hỗ trợ browser/JavaScript tốt hơn
- Phân tích nhanh hơn
- Quy tắc nghiêm ngặt hơn (ít mơ hồ)
- Tốt hơn cho API và trao đổi dữ liệu
- Kích thước file nhỏ hơn khi được nén
Sử dụng YAML cho:
- File cấu hình (Docker, Kubernetes, CI/CD)
- File được chỉnh sửa bằng tay
- Tài liệu cần comment
Sử dụng JSON cho:
- Phản hồi và yêu cầu API
- Ứng dụng JavaScript
- Dữ liệu hiếm khi được chỉnh sửa thủ công
- Khi hiệu suất phân tích quan trọng

Các lỗi YAML phổ biến và cách tránh
Các vấn đề cú pháp YAML phổ biến:
1. Sử dụng tab thay vì khoảng trắng:
Sai: [tab]key: value
Đúng: [2 khoảng trắng]key: value
2. Thụt lề không nhất quán:
Sai:
parent:
child1: value
child2: value
Đúng:
parent:
child1: value
child2: value
3. Thiếu khoảng trắng sau dấu hai chấm:
Sai: key:value
Đúng: key: value
4. Cú pháp danh sách sai:
Sai:
items:
- item1
- item2
Đúng:
items:
- item1
- item2
5. Chuỗi đặc biệt không có dấu ngoặc kép:
Sai: value: yes # Được phân tích là boolean
Đúng: value: "yes" # Được phân tích là chuỗi
Công cụ định dạng này giúp bạn duy trì thụt lề nhất quán và cấu trúc YAML phù hợp.
Làm thế nào để kiểm tra YAML và tìm lỗi chính xác?
Nhấp vào nút 'Kiểm tra'. Công cụ phân tích YAML của bạn bằng một bộ phân tích YAML thực (chính bộ được dùng để định dạng) và cho bạn biết ngay lập tức tài liệu có hợp lệ hay không.
Nếu YAML hợp lệ, bạn nhận được xác nhận màu xanh.
Nếu không hợp lệ, bạn nhận được cảnh báo màu đỏ với thông báo lỗi thực của bộ phân tích cùng dòng và cột chính xác nơi phân tích thất bại - ví dụ 'bad indentation of a mapping entry (12:5)'. Điều này hữu ích hơn nhiều so với một công cụ làm đẹp âm thầm 'sửa' đầu vào lỗi: bạn thấy TẠI SAO một manifest Kubernetes, file Docker Compose hay pipeline CI/CD không phân tích được, và Ở ĐÂU.
Nút Định dạng giờ cũng làm tương tự: nếu đầu vào không thể phân tích, nó hiển thị lỗi thực thay vì tạo ra kết quả sai lệch và thông báo thành công giả.
Tại sao YAML xử lý 'no', 'yes', 'on', 'off' lạ lùng? (Vấn đề Na Uy)
Đây là 'vấn đề Na Uy' (Norway problem) nổi tiếng của YAML 1.1. Trong YAML 1.1, các scalar không có dấu ngoặc kép yes/no/on/off/y/n (bất kỳ kiểu chữ hoa nào) bị chuyển thành boolean true/false. Vì vậy một danh sách quốc gia có 'NO' (Na Uy) trở thành false, và 'country: no' được đọc là 'country: false'.
YAML 1.2 thu hẹp lại chỉ còn true/false, nhưng nhiều bộ phân tích (và Kubernetes, Ansible, Docker Compose) vẫn hoạt động theo ngữ nghĩa 1.1, nên cái bẫy này rất thực tế.
Cách khắc phục: luôn đặt dấu ngoặc kép cho các giá trị bạn muốn là chuỗi - country: "NO", enabled: "yes". Các số như mã bưu chính có số 0 đứng đầu (00123) và chuỗi phiên bản (1.10) cũng có bẫy chuyển đổi tương tự; hãy đặt dấu ngoặc kép cho chúng.
Lỗi liên quan: key trùng lặp. Một mapping có cùng một key hai lần là không hợp lệ trong YAML nghiêm ngặt và hầu hết bộ phân tích từ chối hoặc âm thầm giữ giá trị cuối - hãy kiểm tra file để phát hiện điều này trước khi triển khai.
Công cụ này có kiểm tra anchor, alias, merge key và flow style không?
Có. Vì việc kiểm tra dùng một bộ phân tích YAML đầy đủ, nó hiểu đúng cú pháp nâng cao mà các kỹ sư DevOps thường dùng:
- Anchor và alias (&tên / *tên) để tái sử dụng khối
- Merge key (<<: *defaults) để kế thừa mapping
- Flow style ({key: value}, [a, b, c]) collection nội tuyến
- Block scalar (| literal, > folded) cho chuỗi nhiều dòng
Nếu bất kỳ cái nào trong số này bị lỗi định dạng - một alias trỏ đến anchor chưa định nghĩa, một merge key bị hỏng, hoặc một flow collection không cân bằng - trình kiểm tra báo cáo lỗi phân tích cùng dòng và cột. Lưu ý: việc kiểm tra xác minh cú pháp YAML, không phải sự tuân thủ một schema cụ thể (như CRD của Kubernetes hay đặc tả OpenAPI); để kiểm tra schema hãy dùng một trình kiểm tra schema chuyên dụng.
Dữ liệu YAML của tôi có an toàn không?
Có, dữ liệu của bạn hoàn toàn an toàn và riêng tư. Công cụ này:
- Xử lý tất cả YAML hoàn toàn trong trình duyệt của bạn
- Không gửi bất kỳ dữ liệu nào đến máy chủ của chúng tôi
- Không lưu trữ hoặc ghi nhật ký bất kỳ YAML nào của bạn
- Hoạt động offline sau khi trang được tải
- Không sử dụng bất kỳ dịch vụ bên ngoài nào
Bạn thậm chí có thể ngắt kết nối internet sau khi tải trang và công cụ vẫn sẽ hoạt động hoàn hảo. Dữ liệu YAML của bạn không bao giờ rời khỏi máy tính của bạn. Điều này làm cho nó an toàn để định dạng các file cấu hình nhạy cảm.
Tính năng chính
- Kiểm tra YAML và báo cáo chính xác dòng và cột lỗi
- Định dạng YAML với thụt lề tùy chỉnh (2, 4 hoặc 8 khoảng trắng)
- Nén YAML để giảm kích thước file
- Tùy chọn giữ nguyên hoặc xóa comment
- Tô sáng cú pháp cho key, value, boolean, number và comment
- Thống kê thời gian thực (ký tự, dòng, kích thước)
- Sao chép YAML đã định dạng vào clipboard
- Tải xuống YAML đã định dạng dưới dạng file .yaml
- Tải lên file YAML để định dạng
- Hỗ trợ chế độ tối
- Không giới hạn kích thước file
- Xử lý 100% phía client - dữ liệu của bạn không bao giờ rời khỏi trình duyệt
- Hoạt động offline sau khi tải lần đầu
- Thiết kế responsive thân thiện với mobile
- Đảm bảo thụt lề chỉ bằng khoảng trắng (không có tab)
