Tan Phat Media

YAML Validator

Dán nội dung YAML để kiểm tra thụt lề, dấu hai chấm, dấu nháy và khóa lặp

Đây là bộ kiểm tra theo quy tắc heuristic cho những lỗi YAML thường gặp nhất trên thực tế, không phải trình phân tích đầy đủ theo đặc tả YAML 1.2. Công cụ không xử lý anchor, alias, tag hay các cấu trúc flow phức tạp. File báo "không phát hiện lỗi" ở đây vẫn nên được nạp thử bằng đúng thư viện YAML mà dự án của bạn dùng trước khi triển khai.

Nội dung YAML

0 dòng — dữ liệu chỉ xử lý trong trình duyệt của bạn, không được gửi đi đâu cả.

Kết quả kiểm tra
0 lỗi
0 cảnh báo

Dán YAML vào khung bên trái để bắt đầu kiểm tra.

Năm quy tắc công cụ này kiểm tra
Tab trong thụt lề — YAML chỉ chấp nhận dấu cách, ký tự tab luôn bị coi là lỗi cú pháp.
Thụt lề không nhất quán — mỗi cấp lồng nhau nên tăng cùng một số cột như phần còn lại của tài liệu.
Thiếu dấu cách sau dấu hai chấm — "key:value" bị đọc thành một chuỗi thay vì một cặp khóa-giá trị.
Dấu nháy không khớp cặp — số dấu nháy lẻ trên một dòng nghĩa là chuỗi bị hở, dễ nuốt luôn dòng kế tiếp.
Khóa lặp trong cùng mapping — nhiều trình phân tích không báo lỗi mà âm thầm lấy giá trị sau cùng.

Hợp tác ngay với Tấn Phát Digital

Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.

Kiểm tra cú pháp YAML theo năm quy tắc gây lỗi nhiều nhất trong thực tế

Dán file YAML vào khung soạn thảo, công cụ quét từng dòng theo năm quy tắc heuristic: tab lẫn vào thụt lề, thụt lề không nhất quán, thiếu dấu cách sau dấu hai chấm, dấu nháy hở cặp và khóa bị lặp trong cùng một mapping. Mỗi phát hiện đi kèm số dòng và giải thích bằng tiếng Việt vì sao đó là vấn đề, không chỉ báo tên lỗi.

Tính năng nổi bật

  • Phát hiện ký tự tab trong phần thụt lề — lỗi YAML tuyệt đối cấm nhưng rất dễ gõ nhầm khi copy từ nơi khác
  • So sánh độ thụt lề của mỗi dòng với dòng cha để phát hiện mức tăng không đồng nhất giữa các cấp
  • Bắt lỗi key:value thiếu dấu cách — trường hợp YAML âm thầm đọc thành chuỗi thay vì cặp khóa-giá trị
  • Đếm số dấu nháy đơn và nháy kép trên từng dòng để phát hiện chuỗi bị hở, thiếu dấu đóng
  • Dò khóa bị khai báo hai lần trong cùng một mapping ở cùng cấp thụt lề, kèm số dòng khai báo đầu tiên
  • Xử lý đúng ngữ cảnh danh sách: mỗi phần tử "- key:" được coi là một object mới, không báo nhầm là khóa lặp với phần tử trước
  • Toàn bộ xử lý chạy trong trình duyệt, không upload file lên máy chủ nào
  • Nói rõ đây là bộ kiểm tra heuristic, không phải trình phân tích YAML 1.2 đầy đủ, để người dùng không hiểu nhầm mức độ đảm bảo

Vì sao cần một bước kiểm tra riêng trước khi chạy YAML

YAML là định dạng nhạy cảm với khoảng trắng ở mức khó chịu hơn hầu hết ngôn ngữ cấu hình khác, vì bản thân cấu trúc cha-con được biểu diễn hoàn toàn bằng số cột thụt lề chứ không có dấu ngoặc đóng-mở như JSON. Hậu quả là những lỗi nhỏ nhất — một ký tự tab lẫn vào, một dấu cách thiếu sau dấu hai chấm — không làm chương trình báo lỗi cú pháp rõ ràng mà khiến dữ liệu bị đọc sai lặng lẽ. Một pipeline CI/CD dùng GitHub Actions hay một file cấu hình Kubernetes viết sai một cột thụt lề có thể chạy được nhưng áp dụng nhầm cấu hình vào tầng khác, và lỗi kiểu này thường chỉ lộ ra khi hệ thống đã chạy sai trong sản xuất. Công cụ này quét trước những lỗi phổ biến nhất theo kinh nghiệm thực tế của cộng đồng, để bạn bắt được vấn đề ngay lúc soạn thảo thay vì sau khi đã deploy.

Lợi ích khi sử dụng

  • Bắt được lỗi thụt lề và cú pháp trước khi commit, đỡ mất công debug sau khi pipeline đã chạy sai
  • Giải thích bằng tiếng Việt lý do từng lỗi có vấn đề, không chỉ nêu tên quy tắc
  • Không cần cài thư viện hay công cụ dòng lệnh nào để kiểm tra nhanh một đoạn YAML
  • Phát hiện khóa lặp — lỗi mà nhiều trình phân tích chấp nhận âm thầm chứ không báo
  • Dữ liệu chỉ xử lý cục bộ trong trình duyệt, phù hợp để dán cả file cấu hình có thông tin nhạy cảm

Cách dùng YAML Validator

  1. 1Dán toàn bộ nội dung file YAML vào khung soạn thảo bên trái, hoặc bấm nút dán ví dụ lỗi mẫu để xem công cụ hoạt động thế nào.
  2. 2Kết quả kiểm tra cập nhật ngay lập tức bên phải, mỗi phát hiện hiện số dòng, tên quy tắc vi phạm và lời giải thích cụ thể.
  3. 3Sửa từng lỗi theo thứ tự dòng, ưu tiên lỗi tab và khóa lặp trước vì hai loại này gây sai lệch cấu trúc nghiêm trọng nhất.
  4. 4Sau khi khung kết quả báo không phát hiện lỗi, vẫn nên nạp thử file bằng đúng thư viện YAML mà dự án bạn dùng (PyYAML, js-yaml, snakeyaml...) trước khi triển khai thật.
  5. 5Với file YAML dùng anchor, alias hay tag đặc biệt, công cụ này không phân tích các cấu trúc đó — hãy dựa vào trình phân tích chính thức cho phần này.

Vì sao YAML cấm dùng tab để thụt lề

Đặc tả YAML quy định rõ phần thụt lề chỉ được dùng dấu cách, không được dùng ký tự tab. Lý do không phải vì tab "xấu" mà vì độ rộng hiển thị của một ký tự tab không cố định — trình soạn thảo này hiển thị tab rộng bốn cột, trình khác hiển thị rộng tám cột, còn một số công cụ dòng lệnh lại hiển thị tab như một cột duy nhất. Nếu YAML cho phép trộn tab với dấu cách trong thụt lề, hai dòng nhìn thẳng hàng trên màn hình của bạn có thể được trình phân tích hiểu là hai cấp thụt lề khác nhau tùy theo cách nó quy đổi độ rộng tab, dẫn tới việc cùng một file cho ra cấu trúc dữ liệu khác nhau trên hai máy khác nhau. Vì rủi ro đó, những trình phân tích YAML tuân thủ đặc tả — bao gồm PyYAML, js-yaml, hầu hết công cụ CI/CD — đều từ chối thẳng file có tab trong phần thụt lề bằng một lỗi cú pháp. Lỗi này rất hay gặp khi bạn copy đoạn cấu hình từ một trang web, một tin nhắn Slack, hoặc một file cũ được soạn bằng trình soạn thảo mặc định chèn tab, vì ký tự tab thường không hiện rõ trên màn hình như dấu cách.

Thụt lề không nhất quán gây sai cấu trúc cha con như thế nào

Trong YAML, số cột thụt lề chính là cách duy nhất để biểu diễn quan hệ cha con giữa các phần tử. Một dòng thụt sâu hơn dòng phía trên nó luôn được hiểu là con của dòng đó, bất kể mức tăng là một, hai hay năm cột — YAML không bắt buộc một con số cố định như hai hoặc bốn cột cho mỗi cấp, nhưng để tài liệu nhất quán và dễ đọc, hầu hết đội ngũ đều thống nhất một mức tăng cố định trong toàn bộ file. Vấn đề nảy sinh khi một phần của tài liệu tăng hai cột cho mỗi cấp còn phần khác lại tăng ba hoặc bốn cột — không phải lúc nào YAML cũng báo lỗi cú pháp cho việc này, vì về mặt kỹ thuật một cấp thụt sâu hơn vẫn hợp lệ dù tăng bao nhiêu cột. Cái nguy hiểm là sự nhầm lẫn của người đọc và người viết: một dòng được lập trình viên định để là con của một khóa nhưng lại vô tình thụt sai số cột khiến trình phân tích xếp nó vào làm anh em với khóa cha thay vì con của khóa cha, âm thầm đổi hẳn cấu trúc dữ liệu mà không có thông báo lỗi nào xuất hiện.

Vì sao thiếu dấu cách sau dấu hai chấm lại nguy hiểm hơn vẻ ngoài

Trong cú pháp mapping của YAML, dấu hai chấm chỉ được hiểu là dấu phân tách khóa-giá trị khi có dấu cách hoặc dấu xuống dòng ngay sau nó. Viết "port:8080" không có dấu cách khiến trình phân tích không nhận ra đây là một cặp khóa-giá trị mà đọc toàn bộ chuỗi "port:8080" như một giá trị scalar duy nhất — nếu dòng này nằm độc lập không thuộc ngữ cảnh mapping nào khác, kết quả có thể là lỗi cú pháp, nhưng nếu nó nằm trong một danh sách các chuỗi thì YAML chấp nhận hoàn toàn hợp lệ và bạn nhận về một chuỗi văn bản kỳ lạ thay vì con số cổng bạn định khai báo. Đây là loại lỗi khó phát hiện bằng mắt nhất trong toàn bộ danh sách quy tắc, vì hình ảnh hiển thị trên màn hình gần như giống hệt với dòng đúng "port: 8080", chỉ khác đúng một dấu cách. Rất nhiều lỗi cấu hình Docker Compose và Kubernetes từng bắt nguồn từ chính lỗi đánh máy nhỏ này.

Dấu nháy hở cặp lan lỗi sang các dòng phía sau

Khi một chuỗi trong YAML được mở đầu bằng dấu nháy kép hoặc nháy đơn nhưng thiếu dấu đóng tương ứng trên cùng dòng, trình phân tích không tự động coi dòng đó kết thúc chuỗi ở cuối dòng như với chuỗi không có nháy. Thay vào đó, nó tiếp tục tìm dấu đóng ở những dòng tiếp theo, gộp toàn bộ nội dung các dòng đó — bao gồm cả những khóa và cấu trúc khác vốn không liên quan — vào làm một chuỗi văn bản duy nhất cho tới khi gặp được dấu nháy đóng ở đâu đó xa hơn trong file, hoặc báo lỗi cú pháp nếu không tìm thấy dấu đóng nào cho tới hết file. Hậu quả thường thấy là một lỗi cú pháp xuất hiện ở một dòng cách xa vị trí gõ sai hàng chục dòng, khiến người sửa lỗi tưởng nhầm vấn đề nằm ở chỗ báo lỗi thay vì chỗ thiếu dấu nháy thực sự. Công cụ này kiểm tra số lượng dấu nháy trên từng dòng riêng lẻ để bắt sớm chính xác dòng gây ra vấn đề.

Khóa lặp: lỗi mà YAML không báo nhưng vẫn âm thầm phá dữ liệu

Theo đặc tả YAML 1.2, khai báo hai khóa giống hệt nhau trong cùng một mapping là hành vi không hợp lệ. Tuy nhiên phần lớn trình phân tích được triển khai trong thực tế — bao gồm cả những thư viện phổ biến nhất — không coi đây là lỗi cú pháp cứng mà chỉ đơn giản lấy giá trị của lần khai báo sau cùng, ghi đè lặng lẽ lên giá trị khai báo trước đó. Đây là kiểu lỗi đặc biệt nguy hiểm trong file cấu hình lớn, vì trong một file dài hàng trăm dòng, việc cùng một khóa như "timeout" hay "replicas" xuất hiện hai lần ở hai vị trí cách xa nhau — có thể do một người thêm vào sau mà không biết khóa đã tồn tại, hoặc do copy-paste một khối cấu hình rồi quên xóa dòng cũ — rất khó phát hiện bằng mắt thường khi đọc lướt. Hệ quả thực tế là bạn tưởng mình đã đặt timeout là ba mươi giây ở dòng đầu, nhưng giá trị thực sự được áp dụng lại là giá trị năm giây bị khai báo lại ở một dòng khác phía dưới mà không có cảnh báo nào cho biết điều đó.

Câu hỏi thường gặp (FAQ)

Công cụ này có thay thế được việc chạy thử YAML bằng thư viện thật không?

Không hoàn toàn. Đây là bộ kiểm tra heuristic nhắm vào năm lỗi phổ biến nhất trong thực tế, không xử lý anchor, alias, tag tùy biến hay các cấu trúc flow phức tạp theo đúng đặc tả YAML 1.2. File báo không có lỗi trên công cụ này vẫn nên được nạp thử bằng đúng thư viện YAML mà dự án của bạn dùng trước khi triển khai vào môi trường thật.

Vì sao YAML lại cấm dùng tab để thụt lề?

Vì độ rộng hiển thị của ký tự tab không cố định giữa các trình soạn thảo và công cụ, nên nếu cho phép trộn tab với dấu cách, cùng một file có thể bị hiểu thành hai cấu trúc cha con khác nhau tùy nơi mở. Đặc tả YAML loại bỏ rủi ro này bằng cách cấm hẳn tab trong phần thụt lề, chỉ cho phép dấu cách.

Tại sao "port:8080" lại là lỗi trong khi trông vẫn đọc được?

Vì YAML chỉ nhận diện dấu hai chấm là dấu phân tách khóa-giá trị khi có dấu cách theo sau. Không có dấu cách, toàn bộ chuỗi "port:8080" bị đọc như một giá trị scalar văn bản duy nhất thay vì một cặp khóa "port" với giá trị "8080", nên chương trình đọc cấu hình của bạn sẽ không tìm thấy khóa port như mong đợi.

Công cụ có báo nhầm lỗi với các URL chứa dấu hai chấm không?

Công cụ có loại trừ trường hợp dấu hai chấm theo sau bởi hai dấu gạch chéo, tức các giá trị dạng "url: http://example.com", để tránh báo nhầm. Tuy vậy với cấu trúc phức tạp hơn, luôn kiểm tra lại bằng mắt trước khi sửa theo gợi ý của công cụ.

Vì sao khóa bị lặp lại không khiến YAML báo lỗi ngay?

Đặc tả YAML coi khóa lặp trong cùng một mapping là không hợp lệ, nhưng phần lớn trình phân tích triển khai trong thực tế chọn cách khoan dung: lấy giá trị khai báo sau cùng thay vì dừng chương trình bằng lỗi cú pháp. Điều này khiến lỗi khó bị phát hiện vì file vẫn "chạy được" bình thường.

Công cụ có phân biệt được khóa lặp trong danh sách với khóa lặp trong mapping không?

Có. Mỗi phần tử bắt đầu bằng dấu gạch ngang trong danh sách được công cụ coi là một object mới với bộ khóa riêng, nên hai phần tử danh sách khác nhau cùng có khóa "name" sẽ không bị báo là khóa lặp. Chỉ khóa lặp trong cùng một mapping ở cùng một cấp mới bị đánh dấu.

Tại sao đôi khi một lỗi dấu nháy lại làm cả file báo sai vị trí dòng?

Vì chuỗi bị hở dấu nháy khiến trình phân tích tiếp tục đọc các dòng tiếp theo như một phần của cùng chuỗi đó, cho tới khi tìm được dấu đóng ở một dòng khác hoặc hết file. Lỗi cú pháp cuối cùng thường xuất hiện ở dòng xa vị trí gõ sai thực sự, nên công cụ này kiểm tra riêng từng dòng để chỉ đúng nơi bắt đầu vấn đề.

Mức tăng thụt lề bao nhiêu cột là đúng chuẩn?

YAML không quy định một con số cố định, hai cột hay bốn cột đều hợp lệ về mặt cú pháp. Điều quan trọng là toàn bộ tài liệu dùng nhất quán cùng một mức tăng cho mỗi cấp, vì mức tăng lộn xộn khiến người đọc và cả một số công cụ dễ hiểu sai cấu trúc cha con.

Công cụ có kiểm tra được kiểu dữ liệu của giá trị, ví dụ số hay chuỗi không?

Không. Công cụ chỉ kiểm tra cấu trúc và cú pháp bề mặt theo năm quy tắc đã nêu, không xác thực kiểu dữ liệu hay áp một schema cụ thể lên nội dung. Muốn kiểm tra kiểu dữ liệu, bạn cần một JSON Schema hoặc công cụ xác thực schema chuyên dụng cho YAML.

File YAML của tôi có bị gửi lên máy chủ nào không?

Không. Toàn bộ việc phân tích chạy bằng JavaScript ngay trong trình duyệt của bạn, không có request mạng nào được gửi đi trong quá trình kiểm tra, kể cả khi file chứa thông tin cấu hình nhạy cảm.

Công cụ có hỗ trợ kiểm tra anchor và alias (dấu & và *) trong YAML không?

Chưa. Anchor, alias và tag tùy biến là những cấu trúc nâng cao đòi hỏi một trình phân tích đầy đủ theo đặc tả để xử lý đúng, nằm ngoài phạm vi của bộ kiểm tra heuristic này. Với file dùng nhiều cấu trúc như vậy, hãy dựa vào thư viện YAML chính thức của ngôn ngữ bạn dùng.

Tại sao công cụ báo cảnh báo thụt lề dù tôi thấy các dòng đã thẳng hàng?

Rất có thể một trong các dòng đó chứa dấu cách thừa ở đầu mà mắt thường khó nhận ra, hoặc trộn lẫn giữa dấu cách và ký tự trông giống dấu cách khác khi copy từ nguồn bên ngoài. Hãy bật hiển thị ký tự ẩn trong trình soạn thảo của bạn để kiểm tra chính xác số cột thụt lề thực tế.

Từ khóa liên quan

  • kiểm tra cú pháp yaml online
  • yaml validator tiếng việt
  • lỗi thụt lề yaml
  • yaml không được dùng tab
  • kiểm tra file yaml
  • yaml key value thiếu dấu cách
  • duplicate key yaml
  • yaml lint online
  • kiểm tra docker compose yaml
  • kiểm tra kubernetes yaml
  • yaml github actions lỗi cú pháp
  • yaml indentation error
  • dấu nháy không khớp trong yaml
  • yaml parser lỗi dòng nào
  • sửa lỗi yaml online
  • yaml mapping trùng khóa
  • công cụ kiểm tra yaml miễn phí
  • yaml syntax checker
  • yaml 1.2 quy tắc thụt lề
  • kiểm tra file cấu hình yaml không cần cài đặt

Công cụ Developer Tools liên quan

.env Generator

Tạo file .env và .env.example cho dự án.

.gitignore Generator

Tạo .gitignore cho Node.js, Python, Java.

API Mock Generator

Tạo mock JSON data cho API testing.

API Response Formatter

Format và phân tích API response.

API Tester

Test REST API: GET, POST, PUT, DELETE.

Postman Alternative - API Testing Tool Online với Collections, Environment & File Upload

Postman Alternative miễn phí - Test APIs với Collections, Multiple Environments, Pre-request Scripts, Collection Runner, File Upload (form-data), Tests/Assertions, Code Generation (cURL, JS, Python, Node.js). Browser-based, không cần cài đặt. Save requests, export/import collections, auto-save history. Hỗ trợ Bearer Token, Basic Auth, API Key. Hoàn hảo cho API development và testing.

Swagger API Tester - Test API với OpenAPI/Swagger Spec & Authentication Online

Swagger API Tester miễn phí - Import OpenAPI/Swagger specification và test API endpoints với đầy đủ authentication (Bearer Token/JWT, Basic Auth, API Key). Hỗ trợ OpenAPI 3.0, Swagger 2.0, auto-parse endpoints, parameters, request body. Giao diện như Swagger UI với color-coded methods, grouped endpoints, real-time testing. Hoàn hảo cho API development, testing, debugging secured APIs.

Base Converter

Chuyển đổi Binary, Hex, Base32.

Base64 Encoder

Mã hóa/giải mã Base64.

Binary Converter

Chuyển đổi Decimal, Binary, Hex.

Box Shadow Generator

Tạo CSS box-shadow trực quan.

Chmod Calculator

Tính quyền file Linux.

Dịch vụ của Tấn Phát Digital

Đang xây sản phẩm và cần thêm người làm phần nặng?

Gói giải pháp doanh nghiệp

Nền tảng custom cho ngân hàng, y tế và sàn B2B, chuẩn ISO 27001, GDPR, PCI-DSS, SLA 99.99%.

Từ 50.000.000đXem chi tiết →

Dịch vụ phát triển Blockchain & Web3

Smart contract, dApp và NFT marketplace đa chuỗi, audit bảo mật đầy đủ trước khi lên mainnet.

Từ 50.000.000đXem chi tiết →

Dịch vụ thiết kế website tại Hồ Chí Minh

Website doanh nghiệp, bán hàng và đặt lịch, chuẩn SEO ngay từ cấu trúc, tốc độ tải dưới 3 giây.

Từ 5.000.000đXem chi tiết →

Dịch vụ thiết kế landing page

Trang đích riêng cho từng chiến dịch quảng cáo, tỷ lệ chuyển đổi 3–8%, bàn giao trong 5–21 ngày.

Từ 3.000.000đXem chi tiết →

Tư vấn và báo giá miễn phí trong 24 giờ. Xem toàn bộ dịch vụ

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook