Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte INI 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.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
INI para YAML
Cada cabeçalho de seção vira uma chave de nível superior, com as configurações indentadas dois espaços abaixo dela. Chaves escritas antes do primeiro cabeçalho de seção ficam no nível superior junto com esses blocos. A saída usa só espaços — o YAML proíbe tabulação para indentação, e um conversor que gerasse tabulação produziria um arquivo que nenhum analisador aceita.
O resultado é um documento YAML válido, não um fragmento. Essa distinção importa quando o destino é um arquivo de values ou um conjunto de variáveis, porque geralmente você vai querer aninhar tudo mais um nível abaixo de uma chave própria, e é mais fácil indentar um documento já correto do que raciocinar sobre um fragmento.
Arquivo INI diz On e Off com muito mais frequência do que diz true e false. O php.ini faz isso, a configuração do Windows faz isso, e dezenas de daemons fazem isso. O leitor aqui não trata essas palavras como booleano, então elas continuam string, e o gerador escreve sem aspas: engine: On.
Se essa linha significa string ou booleano depende de qual versão de YAML o analisador implementa. O YAML 1.2, a versão que o registro guarda para o formato e a versão que o analisador desta página implementa, diz que é a string "On". O YAML 1.1 diz que é booleano verdadeiro, e o PyYAML implementa a 1.1 — o que significa que o Ansible, e uma cauda longa de ferramentas em Python, vão ler essa linha como booleano. O mesmo vale para yes, no, y e n.
A correção é colocar aspas, e precisa ser feita à mão porque o conversor não tem como saber quais dos seus valores On eram chave liga/desliga de propósito. Escreva engine: "On" se quiser a string em qualquer analisador, ou engine: true se quiser o booleano em qualquer analisador. Os dois são inequívocos tanto na 1.1 quanto na 1.2, que é a única propriedade que vale a pena buscar.
Vale fazer essa passada de propósito, em vez de só corrigir o que quebrar. Um booleano lido como string costuma avaliar como verdadeiro e por isso fica ligado em silêncio, e uma string lida como booleano costuma falhar alto numa validação de esquema — então a direção perigosa é a silenciosa, onde uma configuração que você desligou volta ligada e nada falha até que algo falhe de verdade.
A tipagem acontece na leitura do INI, não na escrita do YAML, então quando o gerador de YAML roda a decisão já foi tomada. Valores que se leem como número finito viram número, e true e false viram booleano; o resto continua string.
Três casos comuns num arquivo de configuração saem alterados. Uma versão fixada como 1.0 vira 1. Uma permissão de arquivo escrita 0755 vira 755, que não é a mesma permissão. Uma máscara hexadecimal escrita 0x1F vira 31. Valores com unidade grudada ficam seguros, então 128M continua 128M e 30s continua 30s, e o mesmo vale para endereço como 127.0.0.1 e horário como 08:00, nenhum dos quais lê como um número único.
Um cabeçalho escrito [tool.pytest] ou [mail.smtp] vira uma única chave chamada exatamente isso, não dois níveis de aninhamento. O leitor toma tudo entre colchetes como um nome só, que é a única leitura defensável — no php.ini, chave e seção estão cheias de pontos que fazem parte do nome.
O YAML aceita essa chave sem aspas, então a saída é válida e lê bem. Também não é o que um chart do Helm ou um papel do Ansible costuma querer, onde mail.smtp.host normalmente seria três níveis. Separar isso é uma edição manual e deliberada, porque você está decidindo algo que o arquivo de origem nunca disse.
Configuração montada anexando uma camada de ambiente sobre um arquivo base acaba com o mesmo cabeçalho de seção duas vezes. O leitor cria uma seção vazia nova toda vez que vê um cabeçalho, então só a última ocorrência sobrevive, e a anterior é descartada sem aviso nenhum.
Vale conferir isso antes da migração, não depois, porque a saída é YAML bem formado que simplesmente não tem algumas configurações, e uma chave faltando num deploy costuma aparecer como um valor padrão aplicado em silêncio, não como um erro. Procure cabeçalhos duplicados no INI antes; a mesma regra de «o último vence» vale para uma chave repetida dentro de uma seção.
O YAML aceita comentário e o INI aceita comentário, e nenhum dos seus sobrevive a esta conversão. Linhas de comentário são ignoradas na leitura e nada escreve elas de volta, então um arquivo que era metade explicação chega como configuração pura.
Num arquivo editado à mão por anos, esses comentários são a memória institucional: a nota de que um tempo limite foi aumentado por causa de um relatório, o bloco comentado durante um incidente e nunca removido, as iniciais e a data ao lado de um valor que ninguém quer mexer. Copie o INI original para o repositório no mesmo commit do YAML. Não custa nada e é o único lugar onde esse raciocínio ainda existe.
O leitor e o gerador são os dois JavaScript puro nesta página, então o arquivo nunca é enviado a lugar nenhum. Isso vale para as conversões de dado deste site em geral, e este par é onde a propriedade compensa mais: o arquivo INI sendo migrado de um servidor antigo costuma ser exatamente o arquivo com a senha do banco, a credencial de SMTP e as chaves de API.
O teto gratuito é de 100 MB, que nenhum arquivo de configuração chega perto. Na prática a conversão é instantânea, e a única coisa que vale a pena fazer devagar depois é ler a saída — porque no momento em que esses segredos entram num arquivo YAML dentro de um repositório, eles ficam no histórico do repositório para sempre, e essa é uma decisão a tomar antes do commit, não depois.
Se o aplicativo ainda lê INI e sempre vai ler, converter é trabalho perdido. O YAML traz aninhamento, lista, comentário em revisão e um verificador de estilo, e nada disso ajuda um programa cujo analisador espera seção e sinal de igual. A migração vale a pena quando a configuração está indo para um sistema que lê YAML nativamente, não quando o arquivo só parece antigo.
O outro motivo honesto para parar é escala. Um arquivo com três seções e vinte chaves é mais rápido de digitar de novo direto na estrutura de destino do que converter e depois remodelar, e digitar de novo significa que você lê cada valor uma vez. Use o conversor quando o arquivo é grande o bastante para ler à mão ser a opção mais sujeita a erro.
| INI | YAML | |
|---|---|---|
| Nome completo | Configuração INI | YAML Ain't Markup Language |
| Extensão do arquivo | .ini, .cfg, .conf | .yaml, .yml |
| Tipo de mídia | text/plain | application/yaml |
| Publicado pela primeira vez | 1985 | 2001 |
| Especificação | — | YAML 1.2 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Antigo, ainda lido em todo lugar | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | TOML | JSON, TOML |
Os comentários passam. INI 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.
INI é de 1985 e está praticamente superado. YAML é o que os programas atuais escrevem, então converter também é uma forma de continuar conseguindo ler.
Visual Studio Code lê tanto INI quanto YAML, então dá para comparar o resultado com o original sem um segundo programa.
YAML e de 2001, descrito em YAML 1.2. Visual Studio Code e yq leem o formato.
INI foi publicado em 1985 e YAML em 2001. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.
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.
É. 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.
Não. YAML guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original.
Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe YAML Ain't Markup Language.