Formatter & Validator YAML

Tempel YAML, format dengan indentasi 2 spasi, atau validasi sintaks. Mode ketat YAML 1.2. Tanpa unggah.

  1. Tempel YAML Anda ke area teks kiri.
  2. Klik Format untuk round-trip melalui parser dan mengeluarkan YAML kanonik.
  3. Klik Validasi untuk memeriksa sintaks tanpa mengubah input.
  4. Kesalahan menunjuk ke baris dan kolom yang bermasalah.
Apa fungsinya?

Memparse YAML Anda dengan js-yaml dalam mode ketat YAML 1.2 dan mengeluarkannya kembali dengan indentasi 2 spasi, lebar baris 100 kolom, dan kutipan konsisten. Tombol Validasi memeriksa sintaks dan melaporkan kesalahan pertama tanpa mengubah input. Output secara semantik setara dengan input — nilai, tipe, dan struktur dipertahankan.

Contoh

Input YAML berantakan:

name:    Ada
tags: [math,logic]
active:true

Output yang diformat:

name: Ada
tags:
  - math
  - logic
active: true

Kesalahan YAML umum dan cara memperbaikinya

YAML 1.2 dalam mode ketat tidak ramah dengan whitespace. Pola di bawah mencakup sebagian besar kegagalan parser.

  • Tab alih-alih spasi. YAML 1.2 melarang tab untuk indentasi. Ganti setiap tab dengan spasi.
  • Level indentasi tidak konsisten. Anak yang diindentasi 2 spasi di bawah saudara dengan 4 spasi akan gagal. Pilih satu lebar dan gunakan secara konsisten.
  • Jebakan boolean. Di YAML 1.1 (bukan mode di sini), `yes`, `no`, `on`, `off` di-parse sebagai boolean. js-yaml menggunakan 1.2, tetapi input dunia nyata yang bergantung pada perilaku lama mengejutkan pengguna. Beri kutip nilai ambigu: `country: "NO"`.
  • Karakter khusus tanpa kutip. Nilai yang dimulai dengan `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` `` perlu dikutip.
  • Kutip tidak ditutup. Kutip penutup yang hilang membuat parser menyerap sisa file sebagai bagian dari string. Nomor baris yang dilaporkan bisa jauh dari kesalahan sebenarnya.
  • Anchor / alias tidak cocok. Alias `*name` yang merujuk anchor `&name` yang tidak dideklarasikan menimbulkan kesalahan. Verifikasi setiap alias punya anchor yang cocok dideklarasikan lebih awal.
Pertanyaan yang sering diajukan

Apakah Format mengubah data saya?

Tidak — hanya whitespace, kutipan, dan urutan detail representasi. Grafik nilai yang di-parse identik. YAML yang diformat di-parse ulang ke struktur dalam memori yang sama dengan aslinya.

Apakah komentar dipertahankan saat memformat?

Tidak. js-yaml tidak mempertahankan komentar melalui round-trip parse-and-dump. Jika Anda butuh formatting YAML yang mempertahankan komentar, gunakan pustaka berbeda (yaml.js dengan opsi, atau alat CLI seperti `prettier --parser yaml`).

Bisakah saya kustomisasi indentasi?

Build saat ini menggunakan indentasi 2 spasi. Untuk kustomisasi, jalankan js-yaml di command line — pustaka yang sama — dan teruskan `{ indent: 4 }` atau apa pun yang Anda butuhkan.

Berapa besar file YAML yang bisa ditangani?

Hingga sekitar 10 MB sebelum textarea melambat. Sebagian besar file config jauh di bawah 1 MB.

Apakah YAML saya diunggah?

Tidak. Semua berjalan di browser Anda — input Anda di-parse dan diserialisasi ulang oleh JavaScript di halaman ini dan tidak pernah dikirim ke server.

Apakah ini mem-lint masalah gaya seperti kunci duplikat?

js-yaml dalam config default akan menolak kunci duplikat (persyaratan ketat YAML 1.2). Masalah gaya lain seperti kutipan tidak konsisten atau penamaan anchor tidak ditandai — itu butuh linter khusus seperti yamllint.