Formater YAML

Formatowanie odbywa się w tej przeglądarce. Twój YAML nie jest przesyłany na serwer.

Wklej kod YAML zawierający do 1 000 000 znaków i do 100 dokumentów. Formatowanie odbywa się w tej przeglądarce.

YAML wybacza błędy składni, ale nie wybacza błędów wcięć. Jedna spacja w złym miejscu potrafi po cichu zamienić klucz w element listy, a mieszane wcięcia zamieniają code review w mękę. Ten formater parsuje wejście silnikiem js-yaml (schemat core YAML 1.2) bezpośrednio w przeglądarce, a następnie zapisuje je ponownie z wybranym wcięciem, stylem kolekcji, cudzysłowami, kolejnością kluczy i szerokością linii, dzięki czemu configi dają czyste diffy w systemie kontroli wersji i pozostają czytelne dla całego zespołu.

Jak sformatować YAML

  1. 1

    Wklej YAML

    Do 1 000 000 znaków i do 100 dokumentów w jednym strumieniu. Nic nie jest wysyłane: parsowanie działa w Twojej przeglądarce.

  2. 2

    Wybierz opcje

    Szerokość wcięcia, styl blokowy lub przepływowy, cudzysłowy, sortowanie kluczy i szerokość linii.

  3. 3

    Sformatuj

    Narzędzie przebudowuje każdy dokument z kanonicznymi odstępami i wybranym stylem.

  4. 4

    Skopiuj i zacommituj

    Wynik to strukturalnie identyczny YAML, gotowy do wklejenia z powrotem do konfiguracji.

Przed i po

Nieuporządkowane wejście:

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

Sformatowane (2 spacje, styl blokowy):

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

Opcje formatowania

Opcja Wartości Domyślnie
Szerokość wcięcia 2, 4 2
Styl kolekcji Blokowy, przepływowy Blokowy
Cudzysłowy Minimalne, podwójne, pojedyncze Minimalne
Sortowanie kluczy Oryginalna, alfabetyczna Oryginalna
Szerokość linii 80, 120, bez limitu 120

Zasady cudzysłowów

Cudzysłowy minimalne to zwykle to, czego chcesz: łańcuchy zostają bez cudzysłowów, chyba że byłoby to niebezpieczne. Formater dodaje cudzysłowy automatycznie dla:

  • Starych booleanów zapisanych jako łańcuchy: yes, no, on, off, y, n. YAML 1.2 czyta je już jako łańcuchy, ale wiele parserów wciąż trzyma się YAML 1.1, gdzie no bez cudzysłowu staje się false. Formater zawsze bierze je w cudzysłowy w wyniku, więc słynny norweski błąd (NO odczytane jako false na liście krajów) nie ugryzie nikogo, kto wczyta Twój plik.
  • Liczb zapisanych jako łańcuchy: '007', '3.14'. Bez cudzysłowów zostałyby sparsowane jako liczby całkowite lub zmiennoprzecinkowe.
  • Łańcuchów zawierających znaki takie jak :, #, [, { lub zaczynających się od spacji, gdzie goły zapis zmieniłby strukturę.

Porządki przy każdym uruchomieniu

  • Spacje na końcu linii. Usuwane.
  • Mieszane lub nierówne wcięcia. Normalizowane do wybranej szerokości wcięcia.
  • Puste linie wewnątrz kolekcji. Usuwane.
  • Tabulatory we wcięciach. YAML ich zabrania; parser odrzuca wejście z czytelnym błędem wskazującym linię, więc możesz go poprawić, zamiast wypuścić plik, który inne parsery odrzucą.

Komentarze, kotwice i klucze scalające

Formatowanie normalizuje model dokumentu, co ma ograniczenia, które warto znać przed commitem:

  • Komentarze są usuwane. Parser sprowadza dokument do danych, więc komentarze # nie przetrwają formatowania. Zachowaj kopię, jeśli komentarze są dla Ciebie ważne.
  • Kotwice i aliasy są rozwiązywane. Węzły współdzielone przez alias pozostają współdzielone, ale są zapisywane ponownie z wygenerowanymi nazwami, np. &ref_0; oryginalne nazwy kotwic nie są zachowywane.
  • Klucze scalające (<<:) są rozwiązywane do zwykłych map z już scalonymi wartościami.

Strumienie wielodokumentowe

Strumienie z wieloma dokumentami są obsługiwane: każdy dokument jest formatowany niezależnie i łączony z powrotem separatorem ---, do 100 dokumentów na jedno uruchomienie.

Najczęściej zadawane pytania

Struktura i wartości pozostają identyczne: zmienia się tylko zapis (wcięcia, cudzysłowy, styl przepływowy lub blokowy, kolejność kluczy przy włączonym sortowaniu). Dwie rzeczy celowo nie są zachowywane: komentarze są usuwane, a nazwy kotwic generowane od nowa.

Gdy goły łańcuch zostałby sparsowany jako coś innego, cudzysłowy są konieczne dla bezpieczeństwa. Typowe przypadki: klucze lub wartości złożone z samych cyfr, łańcuchy zawierające : lub # oraz stare booleany jak yes i no, które parsery YAML 1.1 odczytałyby jako true/false.

Nie. Opcja stylu dotyczy całego dokumentu: styl blokowy rozpisuje każdą kolekcję w osobnych liniach, przepływowy zapisuje kolekcje w jednej linii. Sformatuj dwa razy z różnymi opcjami, jeśli chcesz porównać.

Nie. Parsowanie i formatowanie działają w Twojej przeglądarce z wbudowanym silnikiem js-yaml. Twój YAML nie przechodzi przez serwer, nie jest zapisywany i nigdy nie trafia do adresu strony; żyje tylko w tej sesji przeglądarki, aby widok wielokrokowy mógł pokazać wynik.

Powiązane narzędzia