Explore a estrutura de um documento YAML em uma árvore expansível.
O que ela faz
O YAML Viewer mostra um documento YAML como uma árvore que você abre e fecha, para que dê para ver como ele é construído sem contar a indentação. Mapeamentos e listas viram ramos, valores viram linhas, e âncoras, tags e aliases são marcados na linha em que aparecem.
Ele serve para olhar, não para reescrever: o seu texto não é alterado. Para arrumar o texto use o YAML Formatter, e para uma resposta simples de válido ou não válido use o YAML Validator.
O que ela aceita
- YAML lido segundo as regras do YAML 1.2 Core, como um documento ou vários separados por ---: mapeamentos, listas, comentários, âncoras, aliases, blocos de texto de várias linhas (| e >) e as tags padrão do YAML, como !!str.
- Com mais de um documento, a árvore começa com uma lista que tem uma linha por documento, numerada a partir de 0 na ordem em que aparecem. Cada documento mantém as suas próprias âncoras, então um alias se refere apenas a uma âncora do seu próprio documento, e o caminho depois da seta começa com o número do documento. Um documento vazio aparece como um valor vazio.
- Cada mapeamento e cada lista é um ramo que mostra quantas entradas ou itens ele tem. Os valores aparecem exatamente como foram escritos no seu texto: as aspas ficam, 1.50 continua 1.50 e yes continua yes, então a árvore nunca transforma um texto em número ou em sim/não. As chaves aparecem sem as aspas.
- Uma âncora (&nome) e uma tag (como !!str) aparecem como selos antes do valor. Os comentários não aparecem na árvore.
- Um alias (*nome) aparece como uma linha de referência, *nome → caminho, e nunca é expandido, então um valor usado várias vezes não é repetido. Uma referência que aponta de volta para um dos seus próprios pais recebe um selo “Ciclo”. Não há salto até o destino: leia o caminho para encontrá-lo.
- Aqui não há “Copiar” nem “Baixar”, porque a ferramenta mostra uma árvore e não um texto de resultado.
Bom saber
- Estes casos são recusados, sem árvore: erros de sintaxe, com a sua linha e coluna; uma chave repetida em um mapeamento; e um alias que não tem âncora antes dele no seu próprio documento. Um YAML válido que esta ferramenta não suporta também é recusado, e a mensagem diz que a sintaxe é válida: uma tag personalizada, ou uma tag padrão que não combina com o valor, como !!int abc; uma diretiva (uma linha que começa com %); e uma chave que não é texto (um número, true, false, null, uma chave vazia, uma chave com âncora, tag ou alias, ou uma chave escrita como lista ou mapeamento). A ferramenta nunca repara o YAML.
- O caminho depois de uma seta junta chaves e posições com pontos, então uma chave que contém um ponto o torna ambíguo: a.b pode significar a chave a.b ou a chave b dentro de a.
- Um valor com mais de 200 caracteres é cortado na árvore, e “Mostrar valor completo” mostra o valor inteiro. Um emoji conta como dois caracteres nesse limite.
- A chave de mesclagem << aparece como uma chave comum, com um aviso, porque o YAML 1.2 Core não tem chaves de mesclagem.
- Um texto com apenas comentários ou linhas em branco não tem o que mostrar, então você recebe um aviso pedindo conteúdo.
- Os limites valem para o texto todo: os limites de tamanho somam todos os documentos, enquanto o limite de aninhamento vale para cada documento separadamente.
Como usar
- Cole ou digite o seu YAML na caixa de entrada. Ele pode ter um documento ou vários, separados por ---. Nada é executado enquanto você digita.
- Aperte “Visualizar”. A “Árvore” aparece no painel Resultado com o primeiro nível aberto.
- Clique em uma linha, ou mova-se com as setas e aperte Enter, para abrir ou fechar um ramo. “Expandir tudo” abre todos os ramos e “Recolher tudo” fecha todos.
- Um valor longo é cortado na árvore. Aperte “Mostrar valor completo” embaixo dele para ler o valor inteiro.
- Se o YAML não puder ser exibido, a mensagem explica o motivo e, quando possível, o lugar.
Exemplos
Âncoras e aliases
Cole este YAML e aperte “Visualizar”. A árvore é mostrada aqui toda aberta e simplificada, sem as contagens e os selos; aperte “Expandir tudo” para abrir tudo você mesmo. A linha settings: *defaults → defaults é uma referência. Ela representa o valor ancorado como &defaults e não é expandida, então um valor usado várias vezes não é repetido. O texto depois da seta é o caminho até o destino.
defaults: &defaults
retries: 3
timeout: 30
service:
settings: *defaults
ports:
- 8080
- 8443
O YAML é exibido como uma árvore.
{…}
defaults: &defaults {…}
retries: 3
timeout: 30
service: {…}
settings: *defaults → defaults
ports: […]
0: 8080
1: 8443Um alias sem âncora
O alias *bsae aponta para uma âncora que não existe, provavelmente um erro de digitação de &base. O YAML Viewer não mostra árvore para um YAML que não pode ser lido, e a mensagem aponta o alias.
base: &base
x: 1
copy: *bsae
Este alias aponta para uma âncora que não existe. Defina a âncora (&nome) em um valor ou corrija o nome.
Linha 3, coluna 7
A chave de mesclagem <<
A chave << é lida como uma chave comum, porque o YAML 1.2 Core não tem chaves de mesclagem. Nada é mesclado: adapter aparece apenas em base, e a linha <<: *base → base é uma referência como qualquer outra. Um aviso lembra que programas que aplicam a mesclagem do YAML 1.1 podem ler este texto de forma diferente.
base: &base
adapter: postgres
dev:
<<: *base
database: dev_db
O YAML é exibido como uma árvore.
Este YAML usa << como uma chave comum. Esta ferramenta segue o esquema YAML 1.2 Core, que não tem chaves de mesclagem, então nada é mesclado. Programas que aplicam a mesclagem do YAML 1.1 podem lê-lo de forma diferente.
{…}
base: &base {…}
adapter: postgres
dev: {…}
<<: *base → base
database: dev_dbUm alias que aponta de volta para o próprio pai
O alias *node está dentro do valor ancorado como &node, então segui-lo nunca terminaria. O YAML Viewer não segue aliases: ele mostra a referência e marca a linha com um selo “Ciclo”, que a árvore simplificada abaixo omite.
node: &node
name: root
self: *node
O YAML é exibido como uma árvore.
{…}
node: &node {…}
name: root
self: *node → nodeMais de um documento
Cole este YAML e aperte “Visualizar”. Os dois documentos são separados por ---. A árvore começa com uma lista que tem uma linha por documento, a partir do número 0: a linha 0 é o primeiro documento e a linha 1 é o segundo. Um texto com um único documento é mostrado sem essa lista.
service: api
ports: [80, 443]
---
service: web
ports: [8080]
O YAML é exibido como uma árvore.
[…]
0: {…}
service: api
ports: […]
0: 80
1: 443
1: {…}
service: web
ports: […]
0: 8080Limites e privacidade
Limites de tamanho
- Entrada: até 2.000.000 bytes de texto em UTF-8 (cerca de 2 MB). Letras acentuadas e emojis ocupam mais de um byte cada. Uma entrada maior é recusada.
- Aninhamento: até 256 níveis de mapeamentos e listas dentro uns dos outros. Um YAML mais profundo é recusado porque passa do que a ferramenta processa.
- Valores: até 200.000 em um documento. Cada mapeamento, lista, alias e valor simples, como um texto ou um número, conta como um valor, e as chaves não contam. Um documento com mais valores é recusado.
- Linhas da árvore: a árvore mostra até 2.000 linhas no início, e um botão acrescenta mais 2.000 por vez, até 10.000 linhas exibidas ao mesmo tempo. Recolha ramos para abrir espaço para outras linhas.
- Tempo: uma execução que demora mais que o seu limite de tempo é interrompida. Tente uma entrada menor.
Sua privacidade
O texto que você digita ou cola, ou abre de um arquivo local, é processado localmente no seu navegador, em um Web Worker dedicado. Ele nunca é enviado para o servidor (um arquivo que você abre é lido apenas no seu navegador) e não é gravado em armazenamento, cookies nem na barra de endereços.
Para ver os detalhes completos, consulte a Política de Privacidade
Ferramentas e páginas relacionadas
O seu texto continua na página quando você troca de ferramenta na mesma aba, então dá para testar o mesmo texto em outra. Recarregar ou fechar a aba o encerra.