Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
Qui converti TOML in YAML gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
TOML in YAML
I fatti su un progetto vivono sempre più in un file TOML — il nome del pacchetto, le versioni Python o Rust supportate, i flag di funzionalità, l’insieme di dipendenze. Ciò che consuma quei fatti è, con la stessa coerenza, YAML: un workflow GitHub Actions, un file valori Helm, un insieme di variabili Ansible.
Quindi il lavoro di solito non è una migrazione ma una trascrizione: portare i valori in sintassi YAML accuratamente, poi spostare le parti che servono in un file con una propria forma. L’output non deve essere un workflow valido. Deve essere un rendering fedele da cui prelevare senza riscrivere un numero di versione.
TOML è insolito tra i formati di configurazione nell’avere veri tipi data e datetime, scritti senza virgolette: launch = 2026-03-01T08:00:00Z. Arrivano nel YAML allo stesso modo — senza virgolette attorno — ciò che YAML riserva per un timestamp. Convertite lo stesso manifest in JSON e ottenete gli stessi caratteri dentro una coppia di virgolette.
Cosa vi compra dipende interamente dal loader. Rileggete l’output con la stessa libreria che lo ha scritto, che segue lo schema core YAML 1.2, e ognuno di quei valori torna una stringa: 1.2 non ha risolutore di timestamp. Leggetelo con PyYAML o Psych di Ruby, ancora su YAML 1.1, e i primi due diventano datetime mentre at: 08:00:00.000 si risolve come il numero sessagesimale 28800.
Entrambi i target scrivono gli stessi caratteri per una data, quindi l’argomento riguarda dove vive il tipo. Nel YAML il valore non ha virgolette ed è abbastanza autodescrittivo che un loader 1.1 lo tipizzerà senza essere istruito. In XML la stessa data è testo di elemento, e cosa significa viene da uno schema che qualcun altro mantiene.
Questo taglia in entrambe le direzioni. Uno schema è un meccanismo di applicazione, e se il sistema ricevente ne ha uno, una data tipizzata male viene catturata alla porta invece che tre passi dentro una pipeline. Scegliete YAML quando la destinazione è un workflow che rileggerà il valore con il proprio loader e voi controllate quale loader sia; scegliete XML quando qualcosa a valle validerà il documento.
Un’intestazione [package] diventa una chiave di primo livello con i suoi valori indentati di due spazi sotto. Un’intestazione [tool.black] diventa tool: contenente black: contenente le impostazioni, perché un’intestazione di tabella puntata è annidamento piuttosto che un nome con punti.
L’ordine è l’ordine visto dal parser, il che per TOML significa che i valori sciolti in cima al file vengono prima e ogni tabella segue nell’ordine in cui è stata scritta. Ciò che si sposta è qualunque cosa espressa con chiavi puntate sparse nel file — quelle vengono raccolte sotto un unico genitore nel YAML.
Questo è il vero cambio di regime ed è facile da perdere perché l’output sembra così simile. In TOML, enabled = true è un booleano perché la sintassi lo dice, e version = "1.0" è una stringa perché tra virgolette. In YAML, uno scalare senza virgolette è ciò che il parser decide che sia.
Lo scrittore quota dove conta: una stringa di cifre esce quotata, quindi version = "1.0" resta version: "1.0" e non il numero 1. Ciò che non quota è NO, yes, on e off, perché sotto YAML 1.2 sono stringhe ordinarie. Caricatelo con PyYAML o Psych, ancora YAML 1.1, e diventano booleani.
Un blocco [[bin]] ripetuto è la forma lista-di-record di TOML, e si converte nella forma che tutti scrivono a mano in YAML: un trattino per voce, chiavi indentate sotto. Gli array semplici si comportano allo stesso modo, una riga con trattino per elemento.
Quella forma a blocco è ciò che la maggior parte degli strumenti YAML documenta, quindi le voci di solito si incollano in un workflow senza riformattazione. Se la destinazione vuole davvero stile flow, è una modifica manuale, e piccola.
Una stringa TOML tra triple virgolette che contiene uno script mantiene la sua struttura a righe. Lo scrittore la emette come scalare a blocco — la chiave, poi una pipe, poi le righe vere indentate sotto — piuttosto che come una riga con sequenze di escape.
I valori lunghi su una sola riga sono gestiti diversamente: una stringa senza a capo ma con molta lunghezza viene piegata su righe di continuazione attorno a ottanta colonne, e YAML rilegge quelle piegature come spazi, quindi il valore è invariato.
TOML e YAML supportano entrambi commenti con #, e un manifest ne è di solito pieno: perché una dipendenza è fissata a una release patch, quale di due impostazioni è deliberata. Nulla sopravvive, perché il lettore scarta i commenti in entrata e lo scrittore non ne ha da posizionare in uscita.
Per un frammento che state per incollare è irrilevante. Per qualunque cosa intendiate conservare, è la ragione per cui il TOML resta la fonte di verità e il YAML viene generato: due file con gli stessi valori e solo uno con il ragionamento è un problema di manutenzione in attesa di essere scoperto.
L’output usa un sottoinsieme semplice del linguaggio. Non ci sono ancore né alias — una sotto-tabella ripetuta appare due volte per intero piuttosto che una volta con un riferimento, perché i valori analizzati sono oggetti separati. Non c’è null da nessuna parte, perché TOML non ha null da convertire.
Se la destinazione si aspetta una di queste cose, le state aggiungendo a mano. Un insieme di variabili Ansible che si basa su tag vault, o un file valori Helm costruito attorno ad ancore, è un file in cui questa conversione confluisce piuttosto che uno che produce.
Il controllo più economico è un giro completo. Caricate l’output con qualunque cosa lo caricherà infine e confrontate una manciata di valori con il manifest — la versione, una data, qualunque cosa sembrasse un numero e dovrebbe essere una stringa.
yq eval . out.yaml riformatta e segnala un errore di sintassi se presente. Farlo una volta è più veloce che debuggare una pipeline che ha girato con version: 1 dove intendevate "1.0".
In questa scheda del browser, con JavaScript ordinario. Nulla viene caricato, non c’è motore da scaricare prima, non c’è account né limite giornaliero. Aprire il pannello di rete e convertire qualcosa è come confermarlo.
I manifest sono abbastanza piccoli che il tetto gratuito di 100 MB è teorico, ma non sono sempre pubblici. La lista dipendenze di un repository privato nomina pacchetti e registri interni, e un blocco [tool] a volte porta hostname o percorsi che dicono più su un’organizzazione di quanto chiunque intenda.
| TOML | YAML | |
|---|---|---|
| Nome completo | Tom's Obvious Minimal Language | YAML Ain't Markup Language |
| Estensione del file | .toml | .yaml, .yml |
| Tipo di media | application/toml | application/yaml |
| Prima pubblicazione | 2013 | 2001 |
| Specifica | TOML 1.0 | YAML 1.2 |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | JSON, INI | JSON |
Non si scarta nulla. TOML e YAML salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.
I commenti passano. TOML e YAML hanno entrambi una sintassi per i commenti, quindi le note lasciate a chi verrà dopo non vengono buttate in silenzio.
Visual Studio Code legge sia TOML sia YAML, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
TOML è stato pubblicato nel 2013. È descritto in TOML 1.0, e vale la pena conoscerlo se il file deve sopravvivere allo strumento che lo ha scritto.
YAML risale al 2001, descritto in YAML 1.2. Visual Studio Code e yq lo leggono.
No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file.
Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta.
No. YAML conserva lo stesso contenuto senza buttare via niente: il risultato è identico in qualità all’originale.
Non si scarta nulla. TOML e YAML salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.