Converter TOML para YAML

Aqui você converte TOML para YAML de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Sem perdas Nada é descartado. O YAML guarda exatamente o que o TOML guardava.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

Levando valores de manifesto para um pipeline que lê YAML

Os fatos sobre um projeto cada vez mais vivem num arquivo TOML — o nome do pacote, as versões suportadas, os sinalizadores de recurso. O que consome esses fatos é, com igual consistência, YAML: um workflow do GitHub Actions, um arquivo de valores do Helm.

Então o trabalho normalmente não é uma migração, é uma transcrição: colocar os valores em sintaxe YAML com precisão, depois mover as partes que você precisa para um arquivo com forma própria.

Datas TOML chegam sem aspas, e o leitor decide o que elas são

TOML é incomum entre formatos de configuração por ter tipos reais de data e datahora, escritos sem aspas. Elas chegam no YAML da mesma forma, sem aspas nenhuma — o que YAML reserva para um timestamp.

O que isso compra depende inteiramente do leitor. Lida de volta com a mesma biblioteca que escreveu, que segue o schema núcleo do YAML 1.2, todos esses valores voltam como string: 1.2 não tem resolvedor de timestamp. Lida com PyYAML, ainda em YAML 1.1, os dois primeiros viram objetos de data.

Por que YAML em vez de XML para um manifesto cheio de datas

Os dois alvos escrevem os mesmos caracteres para uma data, então o argumento é sobre onde o tipo mora. No YAML o valor está sem aspas e é autodescritivo o bastante para um leitor 1.1 tipar sem ser instruído.

Isso corta dos dois lados. Um schema é um mecanismo de aplicação, e se o sistema receptor tem um, uma data mal tipada é pega na porta em vez de três passos dentro de um pipeline.

Como tabelas TOML ficam organizadas depois de virar YAML

Um cabeçalho [package] vira uma chave de nível superior com seus valores indentados dois espaços abaixo. Um cabeçalho [tool.black] vira tool: contendo black: contendo as configurações.

A ordem é a ordem que o parser viu, o que para TOML significa que os valores soltos no topo do arquivo vêm primeiro e cada tabela segue na ordem em que foi escrita.

TOML declara seus tipos e YAML resolve os deles

Esse é o real câmbio de regime, e é fácil de perder porque a saída parece tão parecida. Em TOML, enabled = true é booleano porque a sintaxe diz. Em YAML, um escalar sem aspas é o que o parser decidir que é.

O escritor faz isso onde importa: uma string de dígitos sai entre aspas, então version = "1.0" continua version: "1.0" e não o número 1. O que não fica entre aspas é NO, yes, on e off, porque sob YAML 1.2 essas são strings comuns.

Arrays de tabelas viram listas YAML de mapeamentos

Um bloco [[bin]] repetido é a forma TOML de lista-de-registros, e converte para o formato que todo mundo escreve à mão em YAML: um traço por entrada, chaves indentadas abaixo.

Essa forma em bloco é o que a maioria das ferramentas YAML documenta, então entradas normalmente colam num workflow ou arquivo de valores sem reformatação.

Strings TOML multilinha chegam como blocos escalares YAML

Uma string TOML entre aspas triplas guardando um script ou descrição mantém sua estrutura de linha. O escritor emite isso como um bloco escalar — a chave, um pipe, depois as linhas reais indentadas.

Valores de linha única longos são tratados de forma diferente: uma string sem quebras mas com bastante comprimento é dobrada em linhas de continuação por volta da coluna oitenta, e YAML lê essas dobras como espaços.

Os dois formatos guardam comentários e esta conversão não guarda nenhum

TOML e YAML suportam comentários com #, e um manifesto costuma estar cheio deles: por que uma dependência está fixada numa versão de patch, o que um número mágico significa. Nada disso sobrevive.

Para um fragmento que você vai colar isso não chama atenção. Para qualquer coisa que você pretende manter, é o motivo de o TOML continuar sendo a fonte da verdade e o YAML ser gerado.

O arquivo TOML fica no navegador durante o passo para YAML

A conversão é JavaScript nesta aba: o navegador interpreta o TOML, um pequeno escritor produz o YAML, e nenhuma requisição carrega o documento a lugar nenhum. Não há cadastro, fila nem limite diário.

Manifestos são pequenos o bastante para o teto gratuito de 100 MB ser teórico, mas nem sempre são públicos. A lista de dependências de um repositório privado nomeia pacotes e registros internos.

Como converter TOML para YAML

  1. Solte o seu arquivo TOML nesta página, ou clique para escolher um.
  2. Escolha YAML como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo YAML pronto.

TOML ou YAML: o que muda

TOML comparado com YAML
TOMLYAML
Nome completoTom's Obvious Minimal LanguageYAML Ain't Markup Language
Extensão do arquivo.toml.yaml, .yml
Tipo de mídiaapplication/tomlapplication/yaml
Publicado pela primeira vez20132001
EspecificaçãoTOML 1.0YAML 1.2
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorNenhum navegador
Considerado no lugarJSON, INIJSON

O que se mantém

Nada é descartado. TOML e YAML guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.

Os comentários passam. TOML e YAML têm sintaxe de comentário, então as notas para quem cuidar do arquivo depois não são jogadas fora em silêncio.

Abrir o resultado

Visual Studio Code lê tanto TOML quanto YAML, então dá para comparar o resultado com o original sem um segundo programa.

Para que serve cada formato

TOML foi publicado em 2013. Está descrito em TOML 1.0, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.

YAML e de 2001, descrito em YAML 1.2. Visual Studio Code e yq leem o formato.

De TOML para YAML: perguntas frequentes

Meu arquivo TOML é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.

Converter TOML para YAML é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.

Perde qualidade ao converter TOML para YAML?

Não. YAML guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original.

A conversão de TOML para YAML é sem perda?

Nada é descartado. TOML e YAML guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.

Mais sobre esses formatos