Przejdź do treści

Format YAML do TOML — Numio

Konwertuje jeden dokument YAML na TOML. Zagnieżdżone mapowania stają się sekcjami [table.sub], listy mapowań stają się [[tablica tabel]], a klucze z wartościami null (~) są usuwane.

Przepisanie konfiguracji YAML na TOML, gdy projekt zostanie przeniesiony do ustawień pyproject.toml, Cargo, Hugo lub Netlify TOML.

YAML

TOML

Kiedy go używać

  • Przepisanie konfiguracji YAML na TOML, gdy projekt zostanie przeniesiony do ustawień pyproject.toml, Cargo, Hugo lub Netlify TOML.
  • Sprawdzenie, jak zagnieżdżona struktura YAML będzie wyglądać jako tabela TOML przed wybraniem formatu konfiguracji.

Jak używać

  1. Wklej pojedynczy dokument YAML z mapowaniem na najwyższym poziomie do lewego edytora lub użyj przycisku ładowania pliku, aby otworzyć plik UTF-8.
  2. Napraw każdy zgłoszony błąd YAML (wcięcia, wiele dokumentów lub lista najwyższego poziomu).
  3. Sprawdź daty, wartości null i listy w TOML, a następnie skopiuj je.

YAML

# docker-compose style
version: "3.9"
services:
  web:
    image: nginx:1.27
    ports:
      - "8080:80"
    environment:
      DEBUG: false
      WORKERS: 4
  db:
    image: postgres:16

TOML

version = "3.9"

[services.web]
image = "nginx:1.27"
ports = [ "8080:80" ]

  [services.web.environment]
  DEBUG = false
  WORKERS = 4

[services.db]
image = "postgres:16"

Szczegóły i ograniczenia

YAML jest odczytywany jako YAML 1.2: yes pozostaje ciągiem "yes", 0o17 staje się 15, a daty bez cudzysłowów, np. 2024-01-05, stają się ciągami TOML, nie datami TOML.

Komentarze i kotwice nie są zachowywane jako takie: aliasy (*name) i <<: *klucze scalania kotwic są rozwijane do wartości, do których się odnoszą.

Akceptowany jest tylko jeden dokument; wejście z --- separatorami kończy się niepowodzeniem z powodu błędu wielu dokumentów. Lista najwyższego poziomu lub lista zawierająca mapowania ze zwykłymi wartościami jest odrzucana z wyjaśnieniem.

Działa w Twojej przeglądarce (yaml + @iarna/toml). Tabele podrzędne, takie jak [services.web.environment], są wcięte dwiema spacjami; TOML ignoruje to wcięcie.

FAQ

Czy mogę przekonwertować plik docker-compose.yml na TOML?

Struktura jest konwertowana, jak w przykładzie, ale Docker Compose czyta tylko YAML. Użyj tej opcji, aby sprawdzić lub ponownie wykorzystać dane, a nie jako plik tworzenia wiadomości.

Co się dzieje z wartościami null?

Klucze, których wartość wynosi ~ lub null, są pomijane, ponieważ TOML nie ma typu null.

Czy obsługiwane są kotwice i klucze scalające YAML?

Tak. Aliasy (*name) są rozwijane, a <<: *base kopiuje klucze base do mapowania, przy czym klucze zapisane obok nich mają pierwszeństwo. TOML pokazuje scalone wartości.

Specyfikacje i referencje