Reutilização de configuração

Âncoras YAMLVeja de onde vem cada valor reutilizado

Examine definições, destinos de aliases e uma saída YAML expandida em separado.

Âncoras YAML

Entrada YAML

YAML expandido

A entrada fica neste navegador. Não é enviada, executada, salva nem incluída em uma URL.

A mesclagem começa desativada. Chaves explícitas e os primeiros mapas de origem têm prioridade; a mesclagem é superficial. O exemplo também mostra a ativação da opção na prévia.

yaml 2.9.0 · As diretivas devem corresponder à versão escolhida. A saída declara sua versão.

500.000 unidades UTF-16 / 2 MB UTF-8; 100 documentos; 50.000 nós de origem e visitas de expansão; profundidade 100; 5.000 linhas de grafo; 2 milhões de caracteres e unidades de trabalho escalar; 5 segundos.

Grafo de referências da origem

As setas ligam a definição ao uso. Clique em uma posição para voltar ao texto. “Destino encontrado” identifica uma definição; não garante a expansão de um ciclo.

Insira YAML ou execute uma análise.

As âncoras YAML reduzem repetição, mas podem dificultar a leitura de uma configuração extensa. O grafo mostra a definição usada por cada alias, com linha e coluna, inclusive quando um nome aparece em várias definições.

Confira âncoras e aliases YAML antes de substituir seu arquivo. Cada referência YAML fica ligada à origem; a chave de mesclagem pode ser ativada separadamente. Se a expansão falhar, as referências já coletadas continuam disponíveis para investigação.

Por que inspecionar âncoras YAML?

Entenda a reutilização antes de alterar a configuração

Diferenciar definições com o mesmo nome

As âncoras YAML podem reutilizar nomes. Cada alias aponta para a definição anterior mais próxima dentro do próprio documento, e o grafo mantém essas definições separadas pela posição. Um & ou * dentro de uma string continua sendo apenas texto.

Duas definições em cores diferentes apontam para seus usos posteriores; uma curva vermelha indica uma dependência circular.

Conferir o valor que prevalece

Ative a mesclagem para examinar valores herdados. Chaves explícitas sempre vencem; entre mapas de origem, vence o primeiro. A saída fica separada da entrada até você revisar a substituição e aplicar o resultado.

Dois mapas de origem alimentam o resultado; uma configuração local substitui um valor herdado e um bloco aninhado permanece inteiro.

Três escolhas antes de aplicar

Use o esquema, o grafo e a restauração

01

Escolher versão e mesclagem separadamente

O padrão é YAML 1.2 Core, com mesclagem desativada em ambas as versões. Em 1.1, valores como yes e datas mudam de interpretação. A diretiva %YAML deve corresponder à opção. A prévia do exemplo de mesclagem inclui tanto o novo texto quanto a ativação desse recurso.

02

Ir diretamente à definição

Clique na origem ou no uso de uma referência para focar a linha e a coluna. O grafo tem 50 linhas por página e inclui âncoras sem usos. Destinos ausentes e ciclos detectados continuam visíveis após falha; um limite pode interromper a coleta e deixar o grafo parcial.

03

Substituir com um passo para desfazer

Usar resultado, exemplos, Limpar e importar arquivo abrem uma prévia com contagem de linhas. Aplicar mantém um passo de Desfazer para entrada, opções e análise. Ctrl/Cmd+Enter executa o modo manual; o automático espera 350 ms após a edição. Resultados desatualizados não podem ser exportados.

Estrutura, mesclagem e valores tipados

Analise referências sem converter o conteúdo em JSON

Posições da sintaxe real

O analisador léxico e a árvore sintática identificam âncoras e aliases de verdade, inclusive em chaves de texto ou em uma linha separada. Strings entre aspas e blocos de texto não geram referências falsas. Cada documento usa sua própria tabela de definições.

Ciclos continuam visíveis

Um grafo YAML recursivo pode ser válido, mas não ter expansão finita sem aliases. A análise detecta as arestas envolvidas e mantém as referências coletadas, bloqueando toda a saída. Encontrar um destino não significa que seu valor foi expandido.

Mesclagem superficial

O recurso aceita mapas, aliases de mapas e sequências de mapas. Chaves explícitas têm prioridade independentemente da posição; depois valem as primeiras origens. Objetos aninhados são substituídos como valores completos e sequências não são concatenadas.

Tokens preservados

A expansão copia nós da árvore sintática, preservando inteiros grandes, grafias numéricas, floats especiais e tokens timestamp. Antes de liberar a exportação, a saída é analisada novamente sob o mesmo esquema e passa pela verificação de preservação.

Escopo, tipos e limites da expansão

A saída precisa ser completa e finita

Versão declarada em cada documento
O motor yaml 2.9.0 oferece YAML 1.2 Core e o esquema YAML 1.1. Uma diretiva %YAML incompatível interrompe o processamento. Cada documento de saída declara a versão escolhida. A mesclagem é uma extensão independente e começa desativada mesmo em 1.1.
Prioridade das chaves de mesclagem
Com a opção ativa, << sem aspas e !!merge mesclam mapas. Várias chaves de mesclagem são aceitas como extensão do motor, na ordem da origem: mapas anteriores vencem e chaves explícitas sempre têm prioridade. "<<" e !!str << continuam sendo chaves de texto comuns. Com a opção desativada, << sem aspas também é uma chave comum; duplicatas comuns são rejeitadas.
Apenas chaves que resultem em strings
Aliases de strings ancoradas podem ser chaves. Números, booleanos, null e coleções não podem, e não são convertidos automaticamente em texto. São aceitos tipos Core, timestamp e binary; binary exige Base64 canônico com preenchimento. Tags desconhecidas e coleções set, omap e pairs interrompem a expansão. Nenhum construtor personalizado é executado.
Preservação de valor não é de formatação
A saída remove a sintaxe de âncoras e aliases, comentários e espaçamento original. Tokens numéricos e timestamp são copiados sem passar por Number ou Date. Floats especiais e binários continuam como tipos YAML; strings podem mudar de aspas ou apresentação. O arquivo original não é sobrescrito automaticamente.
Referências ficam no próprio documento
Um alias usa a definição anterior mais próxima do mesmo nome. Referências futuras e entre documentos falham. Reutilizar nomes de âncora é permitido, mas duplicar chaves comuns não. Compose include e interpolação, GitLab extends ou !reference, templates Helm, JSON $ref e importações entre arquivos não são avaliados.
Toda expansão tem orçamento de trabalho
A entrada aceita até 500.000 unidades UTF-16 e 2 MB UTF-8, 100 documentos, 50.000 nós de origem e profundidade 100. O limite de 50.000 visitas inclui aliases repetidos, chaves de mesclagem e origens sobrescritas. Escalares de origem e de valores dividem 2 milhões de unidades de trabalho; a saída tem outro teto de 2 milhões de caracteres. O grafo para em 5.000 linhas e cada worker tem 5 segundos. Qualquer falha bloqueia a exportação inteira, sem arquivo truncado.

Dúvidas sobre âncoras YAML

Formatação, tipos e reutilização de configuração

A expansão preserva comentários e formatação?

Não. As âncoras YAML são substituídas por cópias de valores e a saída não conserva comentários nem espaços originais. Tokens numéricos e timestamp aceitos são preservados, mas strings podem receber outras aspas. Confira a prévia antes de aplicar.

As chaves de mesclagem vêm ativadas?

Não, em nenhuma das versões. Ative a opção para expandir a herança entre mapas. Chaves explícitas vencem e depois prevalece a primeira origem. << entre aspas continua sendo uma chave literal. O exemplo mostra a ativação antes de aplicá-la.

Um alias pode apontar para um array?

Sim. Ele pode representar uma sequência inteira ou aparecer como um item de outra sequência. Isso não espalha elementos nem concatena arrays. Recursão ou excesso de trabalho podem impedir a expansão; nesse caso não há exportação do resultado.

Posso usar âncoras entre arquivos incluídos pelo Compose?

Os aliases YAML se limitam a um documento. Esta página não processa include, interpolação ou outras regras do Compose. Juntar textos mantendo documentos separados não cria referências válidas entre eles; a reutilização entre arquivos depende da aplicação.

Quais tipos de dados YAML são aceitos?

São aceitos os tipos Core e os tipos timestamp e binary, com Base64 canônico preenchido para binários. A versão escolhida controla os tipos implícitos. Chaves devem resultar em strings. Tags desconhecidas e set, omap e pairs são rejeitados; não há conversão intermediária para JSON.

Encontrou uma referência ou um valor inesperado?

Inspecione suas âncoras YAML

Use as âncoras YAML para entender a origem dos valores e revise o resultado expandido antes de substituir a configuração.

O arquivo expandido ainda precisa ser validado pela aplicação que o utiliza.