Trình định dạng YAML

Việc định dạng diễn ra trong trình duyệt này. YAML của bạn không được tải lên.

Dán YAML tối đa 1.000.000 ký tự và tối đa 100 tài liệu. Việc định dạng diễn ra ngay trong trình duyệt này.

YAML dễ dãi với cú pháp nhưng khắc nghiệt với thụt lề. Chỉ một dấu cách lệch chỗ cũng có thể âm thầm biến một khóa thành phần tử danh sách, còn thụt lề lộn xộn khiến việc review trở thành cực hình. Trình định dạng này phân tích dữ liệu bạn dán bằng engine js-yaml (lược đồ core của YAML 1.2) ngay trong trình duyệt, rồi xuất lại với thụt lề, kiểu tập hợp, dấu nháy, thứ tự khóa và độ rộng dòng do bạn chọn, để file cấu hình cho diff sạch trong hệ thống quản lý phiên bản và luôn dễ đọc với mọi người cùng làm.

Cách định dạng YAML

  1. 1

    Dán YAML

    Tối đa 1.000.000 ký tự và tối đa 100 tài liệu trong một stream. Không có gì được tải lên: việc phân tích chạy trong trình duyệt của bạn.

  2. 2

    Chọn tùy chọn

    Độ rộng thụt lề, kiểu khối hoặc luồng, dấu nháy, sắp xếp khóa và độ rộng dòng.

  3. 3

    Định dạng

    Công cụ dựng lại từng tài liệu với khoảng trắng chuẩn và kiểu bạn đã chọn.

  4. 4

    Sao chép và commit

    Kết quả là YAML giống hệt về cấu trúc, sẵn sàng dán lại vào file cấu hình của bạn.

Trước và sau

Dữ liệu vào lộn xộn:

server:
  port:   8080
  hosts: ["api.example.com",  "api2.example.com"]
  timeout:  30
  debug: true

Đã định dạng (2 dấu cách, kiểu khối):

server:
  port: 8080
  hosts:
    - api.example.com
    - api2.example.com
  timeout: 30
  debug: true

Tùy chọn định dạng

Tùy chọn Giá trị Mặc định
Độ rộng thụt lề 2, 4 2
Kiểu tập hợp Khối, luồng Khối
Dấu nháy Tối thiểu, nháy kép, nháy đơn Tối thiểu
Sắp xếp khóa Gốc, theo bảng chữ cái Gốc
Độ rộng dòng 80, 120, không giới hạn 120

Quy tắc dấu nháy

Dấu nháy tối thiểu thường là điều bạn muốn: chuỗi được giữ nguyên không nháy trừ khi để trần sẽ không an toàn. Trình định dạng tự động thêm dấu nháy cho:

  • Boolean kiểu cũ viết dưới dạng chuỗi: yes, no, on, off, y, n. YAML 1.2 đã đọc chúng là chuỗi, nhưng nhiều parser vẫn theo YAML 1.1, nơi no không nháy biến thành false. Trình định dạng luôn bọc chúng trong dấu nháy ở kết quả, nên lỗi Na Uy nổi tiếng (NO bị đọc thành false trong danh sách quốc gia) không thể cắn bất kỳ ai dùng file của bạn.
  • Số viết dưới dạng chuỗi: '007', '3.14'. Không có nháy, chúng sẽ bị phân tích thành số nguyên hoặc số thực.
  • Chuỗi chứa các ký tự như :, #, [, { hoặc bắt đầu bằng khoảng trắng, vì xuất trần sẽ làm thay đổi cấu trúc.

Những dọn dẹp ở mỗi lần chạy

  • Khoảng trắng cuối dòng. Bị loại bỏ.
  • Thụt lề lẫn lộn hoặc không đều. Được chuẩn hóa về độ rộng thụt lề bạn chọn.
  • Dòng trống bên trong tập hợp. Bị loại bỏ.
  • Tab trong thụt lề. YAML cấm tab; parser từ chối dữ liệu với thông báo lỗi rõ ràng chỉ đúng dòng, để bạn sửa thay vì phát hành một file mà các parser khác sẽ từ chối.

Chú thích, anchor và khóa gộp

Việc định dạng chuẩn hóa mô hình tài liệu, nên có vài giới hạn đáng biết trước khi commit:

  • Chú thích bị xóa. Parser quy tài liệu về dữ liệu, nên chú thích # không sống sót qua định dạng. Hãy giữ một bản sao nếu chú thích quan trọng với bạn.
  • Anchor và alias được phân giải. Các nút chia sẻ qua alias vẫn được chia sẻ, nhưng được xuất lại với tên tự sinh như &ref_0; tên anchor gốc không được giữ.
  • Khóa gộp (<<:) được phân giải thành mapping thường với các giá trị đã gộp nằm đúng chỗ.

Stream nhiều tài liệu

Stream chứa nhiều tài liệu được hỗ trợ: mỗi tài liệu được định dạng độc lập rồi nối lại bằng dấu phân cách ---, tối đa 100 tài liệu mỗi lần chạy.

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

Cấu trúc và giá trị giữ nguyên hệt: chỉ cách trình bày thay đổi (thụt lề, dấu nháy, luồng hay khối, thứ tự khóa nếu bạn bật sắp xếp). Có hai thứ chủ ý không được giữ: chú thích bị xóa và tên anchor được sinh lại.

Khi một chuỗi để trần sẽ bị phân tích thành thứ khác, dấu nháy là bắt buộc để an toàn. Trường hợp thường gặp: khóa hoặc giá trị chỉ gồm chữ số, chuỗi chứa : hoặc #, và boolean kiểu cũ như yesno mà parser YAML 1.1 sẽ đọc thành true/false.

Không. Tùy chọn kiểu áp dụng cho toàn bộ tài liệu: khối trải mỗi tập hợp ra các dòng riêng, luồng viết tập hợp trên cùng một dòng. Hãy định dạng hai lần với tùy chọn khác nhau nếu cần so sánh.

Không. Việc phân tích và định dạng chạy trong trình duyệt của bạn với engine js-yaml đi kèm. YAML của bạn không đi qua máy chủ, không bị lưu và không bao giờ xuất hiện trong địa chỉ trang; nó chỉ tồn tại trong phiên trình duyệt này để giao diện nhiều bước hiển thị kết quả.

Công cụ liên quan