O YAML é a abreviação de “ainda outra linguagem de markup” ou “YAML não é linguagem de markup”, a última sigla recursiva usada para enfatizar que o YAML é para dados e não documentos. YAML é uma linguagem de serialização de dados usada para gravar arquivos de configuração para implantação de infraestrutura. Por exemplo, se você quiser implantar um aplicativo Docker no Kubernetes, use um arquivo YAML para configurar a instância. O YAML pode ser lido por pessoas, por isso é fácil criar um arquivo e ler as instruções dele durante as implantações.
Se você é novo no YAML, não vai demorar muito para perceber que precisa de uma maneira de dividir suas sequências em várias linhas, uma das perguntas mais frequentes sobre YAML na Web. Neste artigo, abordaremos as duas principais abordagens para cadeias de caracteres multilinha YAML, bem como algumas outras perguntas frequentes.
YAML e Whitespace: O que saber
Os arquivos YAML usam espaços em branco e devoluções de carros, mas o conteúdo é serializado quando ingerido em um recurso específico. Os desenvolvedores que criam um arquivo YAML podem formatar o texto usando recuos e espaçamento para facilitar a leitura. O YAML trata espaços em branco de forma semelhante a outros idiomas, para que você possa ter quantos forem necessários para formatar um arquivo.
Como quebrar linhas para strings multilinha YAML
Ao ingerir arquivos YAML, você pode ocasionalmente querer manter as quebras de linha em uma sequência de várias linhas. Veja o seguinte pseudocódigo como exemplo:
chave:
item 1
item 2
item 3
Depois de cada item de linha (por exemplo, item1, item2 e item3), você tem uma devolução de carro. Se você deixar a sintaxe YAML como está, a string se tornará a seguinte:
item 1 item 2 item 3
Esse formato de sequência cria uma sequência longa sem formatação de retorno de carro, portanto, você pode querer preservar as quebras de linha. As quebras de linha podem ser preservadas com o operador literal. O operador literal é o personagem da tubulação (“|”). Para preservar quebras de linha, sua sintaxe YAML deve ser alterada para o seguinte:
chave: |
item 1
item 2
item 3
Observe o caractere do tubo após a diretiva “chave”. Quando o aplicativo ingere o arquivo YAML, ele será convertido para a seguinte sequência:
item1\nitem2\nitem3
O caractere “\n” representa uma nova linha. A impressão dessa sequência em um aplicativo exibirá cada item com um retorno de carro anexado para preservar a formatação nas instruções do YAML.
Blocos multilinha YAML x sequências longas
Para sequências longas, você precisa usar blocos de várias linhas para ler um arquivo YAML. Por exemplo, se você tiver um parágrafo de 250 palavras em um arquivo YAML, precisará dividir as frases em blocos de várias linhas. Você não deve preservar as devoluções de transporte, exceto no final de um parágrafo. Você pode formatar um arquivo YAML para usar várias linhas para strings longas e serializar a string para anexar espaços a cada item em vez de um novo caractere de linha.
Para usar um caractere de espaço em branco em vez de anexar uma nova linha, use o operador dobrado (“>”):
chave: >
item 1
item 2
item 3
Com o operador dobrado, o YAML adiciona um espaço quando cria a sequência. A string tem a seguinte aparência:
item1 item2 item3\n
Perguntas frequentes sobre o YAML Multiline
Como inserir uma interrupção de linha no YAML?
Usando o operador literal (“|”), qualquer interrupção de linha em uma sequência YAML será preservada. Você cria uma quebra de linha usando o pressionamento da tecla de retorno do carro da mesma forma que cria uma quebra de linha em um documento padrão. O exemplo a seguir preserva o retorno do carro em uma sequência YAML:
chave: |
item 1
item 2
item 3
O YAML pode ter linhas em branco?
Sim, uma string representada como um bloco de texto também pode conter linhas em branco. O operador de manutenção (“|+”) preserva todas as linhas vazias em branco junto com o novo caractere de linha. O seguinte YAML é um exemplo de uma sequência de várias linhas com duas linhas vazias no final do bloco:
chave: |+
item 1
item 2
item 3
Um analisador YAML exibirá a seguinte sequência de caracteres da sintaxe acima:
item1\nitem2\nitem3\n\n
O YAML se preocupa com o espaço em branco?
Um espaço em branco na guia é um caractere ilegal no YAML, portanto, qualquer recuo deve ser usado com um caractere de espaço único padrão. As guias podem ser usadas em strings entre aspas, mas não podem ser usadas para formatar um arquivo YAML. A consistência nos recuos do espaço em branco é importante para a legibilidade dos dados.
Espaços são permitidos no YAML?
Sim, você pode ter espaços padrão em um arquivo YAML. Os espaços devem ser usados para recuos e não para o caractere da guia. Caracteres da guia podem causar erros durante a análise de um arquivo YAML.