Ir para o conteúdo principal

Visualizador YAML (YAML Viewer)

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

  1. 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.
  2. Aperte “Visualizar”. A “Árvore” aparece no painel Resultado com o primeiro nível aberto.
  3. 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.
  4. Um valor longo é cortado na árvore. Aperte “Mostrar valor completo” embaixo dele para ler o valor inteiro.
  5. 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: 8443

Um 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_db

Um 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 → node

Mais 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: 8080

Limites 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.

Todas as ferramentas