Formatador e Validador de HTML / XML
Cole HTML ou XML e receba-o com indentação limpa, com erros de boa formação (XML) ou avisos de tags não fechadas (HTML) sinalizados.
1.226 visualizações
Como Funciona
O formatador percorre sua marcação e rastreia a profundidade de aninhamento à medida que avança: cada tag de abertura empurra o contador de profundidade um nível para cima, cada tag de fechamento correspondente o puxa um nível para baixo. Cada linha de saída recebe um número de unidades de indentação proporcional à sua profundidade atual — uma tag um nível abaixo recebe uma unidade de indentação, uma tag quatro níveis abaixo recebe quatro, e assim por diante. Nós de texto, comentários e atributos herdam a profundidade do elemento que os contém, de modo que o resultado final espelha visualmente a estrutura real em árvore do documento, em vez de um bloco de texto ininterrupto.
Por exemplo, uma linha única compacta como <ul><li>A</li><li>B</li></ul> volta como <ul> no nível superior, com <li>A</li> e <li>B</li> cada um recuado um nível, e o fechamento </ul> de volta ao topo — três linhas em vez de uma, e a profundidade de cada uma é imediatamente legível apenas pela sua indentação. Elementos vazios como <br> ou <img> nunca aumentam o contador de profundidade, já que não têm filhos para aninhar nada dentro.
Bom Saber
Escolha o modo XML e o analisador é rígido: qualquer violação de boa formação — uma tag não fechada, aninhamento incompatível, um caractere inválido — é relatada com uma mensagem de erro específica, em vez de ser corrigida silenciosamente. Escolha o modo HTML e a ferramenta, em vez disso, executa uma verificação de equilíbrio de tags da melhor forma possível, porque os próprios navegadores analisam o HTML de forma tolerante e não há um estado equivalente de "inválido" rígido para detectar. Essa divisão reflete uma diferença real entre os dois formatos: a especificação do XML exige que um documento seja bem formado ou seja totalmente rejeitado, sem meio-termo, enquanto o HTML5 foi deliberadamente projetado para que pequenos erros de autoria — como uma tag de fechamento esquecida — não quebrem a página. Essa tradição permissiva também é o motivo pelo qual <br/> é obrigatório em XML, mas <br> e <br/> são ambos válidos e intercambiáveis em HTML.
Isso é útil muito além de organizar marcação escrita à mão. HTML minificado obtido de uma página ao vivo, uma resposta de API XML retornada em uma única linha densa, ou um arquivo de configuração exportado sem nenhuma formatação — todos se tornam muito mais fáceis de ler, e muito mais fáceis de detectar uma tag mal posicionada, uma vez aplicada a indentação baseada em profundidade. Como a indentação é recalculada a partir da estrutura analisada, em vez de copiada da entrada, a saída é consistente independentemente de quão inconsistente fosse o espaçamento original.
Perguntas Frequentes
Por que o modo XML detecta erros que o modo HTML não percebe?
O XML tem uma especificação rígida de boa formação — o analisador XML do navegador rejeita tudo o que a viole. A análise de HTML é propositalmente tolerante (um objetivo central de design, para que a web não quebre com pequenos erros), então não existe um erro rígido equivalente — esta ferramenta faz, em vez disso, uma verificação de equilíbrio de tags da melhor forma possível para HTML.
Como a ferramenta decide quanto indentar cada linha?
Ela rastreia a profundidade de aninhamento enquanto analisa: abrir uma tag aumenta a profundidade em um, fechar uma tag a diminui em um, e cada linha é indentada por uma quantidade proporcional à sua profundidade naquele ponto. Um elemento três níveis abaixo na árvore recebe três unidades de indentação, independentemente de quão longas ou curtas sejam as tags ao seu redor.
Por que <br/> é obrigatório em XML mas opcional em HTML?
O XML não tem um conceito embutido de elemento "vazio" — toda tag deve ser explicitamente fechada, seja com uma tag de fechamento separada ou a barra de autofechamento, ou o documento não é bem formado. O HTML5, por outro lado, define uma lista fixa de elementos vazios (br, img, input, hr e outros) que os navegadores já sabem que nunca têm filhos, então tanto <code><br></code> quanto <code><br/></code> são analisados de forma idêntica.
A formatação altera meu conteúdo?
Não — apenas espaços em branco e indentação mudam. Tags, atributos, texto e comentários são preservados exatamente (os valores de atributos são reescapados por segurança, o que só pode alterar os caracteres de aspas, nunca o valor em si).
Isso funciona em um documento muito aninhado ou minificado?
Sim — a abordagem baseada em rastreamento de profundidade não se importa com a forma como a entrada foi originalmente formatada ou quão profundamente está aninhada; um arquivo minificado em uma única linha e um indentado manualmente de forma desorganizada produzem a mesma saída limpa, já que a indentação é recalculada a partir da própria estrutura das tags, em vez de preservada da entrada.
Ferramentas Semelhantes
Reportar um Problema
Formatador e Validador de HTML / XML
Comentários
Ainda não há comentários — seja o primeiro a escrever um!