Conversor de INI para YAML

Infra moderna, playbooks do Ansible, valores do Helm, fluxos de trabalho do GitHub Actions, todos consomem YAML. Configurações legadas, especialmente no Windows e em aplicativos PHP mais antigos, geralmente são INI. Este conversor analisa a sintaxe INI e emite YAML equivalente: seções se tornam chaves de nível superior, pares key = value se tornam mapeamentos key: value, comentários são mantidos como # ….

Como converter INI para YAML

  1. 1

    Cole o INI

    Cabeçalhos de seção, pares key=value e comentários são todos suportados.

  2. 2

    Analisar

    Linhas em branco são descartadas; espaços em branco finais são removidos.

  3. 3

    Emitir YAML

    Seções se tornam mapeamentos; chaves são citadas apenas quando o YAML exige (dois pontos, traços iniciais).

  4. 4

    Copie o YAML

    Indentação de dois espaços, pronto para colar em um arquivo de valores ou playbook.

Exemplo

Entrada:

[database]
host = db.example.com
port = 5432

[cache]
driver = redis
ttl = 3600

Saída:

database:
  host: db.example.com
  port: "5432"
cache:
  driver: redis
  ttl: "3600"

Quando os valores são citados

O YAML analisa strings não citadas de maneiras interessantes, yes se torna true, 1.2 se torna um float, 2024-01-01 se torna uma data. O conversor cita valores que, de outra forma, mudariam de tipo:

Valor escrito em INI Saída YAML
5432 "5432"
yes "yes"
on "on"
2024-01-01 "2024-01-01"
localhost localhost

Regras de indentação do YAML

  • Dois espaços por nível (não tabs, YAML proíbe tabs para indentação).
  • Mapeamentos de bloco usam key: value com um espaço após os dois pontos.
  • Cada filho de um pai deve ser indentado pela mesma quantidade.

Armadilhas da conversão reversa

Se você converter INI → YAML → INI, pode perder:

  • Posições de comentários: comentários em YAML podem não ser mapeados de volta de forma limpa.
  • Agrupamento de linhas em branco: INI e YAML ambos permitem, mas a conversão tende a achatar.
  • Ordenação dentro de uma seção: ambos os formatos preservam a ordem, mas a alfabetização é fácil de acionar acidentalmente.

Perguntas frequentes

Porque a especificação YAML 1.1 analisa 5432 não citado como um inteiro, e você perde a forma original da string. Citar mantém como texto, crítico para números de porta ou qualquer valor que você queira consumir literalmente.

Apenas se seu INI usar uma convenção de chave pontuada (section.key = value). O conversor pode promover isso para YAML aninhado; INI puro e plano permanece plano.

Sim, linhas que começam com ; ou # se tornam comentários YAML # ... na mesma posição.

Não. A análise ocorre no navegador e o texto INI não é retido.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas