Uma bela impressora HTML de linha de comando: tornando o HTML confuso legível [fechado]


105

Estou procurando recomendações para impressoras bonitas em HTML que atendam aos seguintes requisitos:

  • Recebe HTML como entrada e, em seguida, produz uma versão bem formatada / recuada corretamente, mas "graficamente equivalente" do HTML de entrada fornecido.
  • Deve oferecer suporte à operação de linha de comando.
  • Deve ser de código aberto e rodar em Linux.

5
Outras opções são pup(sem argumentos) xmllint --format --html -, e xml fo --html.
nisetama

1
curl httpbin.org | tidy -im
Fabijan Bajo

Também: hxnormalize from html-xml-utils (Debian)
elig

related: stackoverflow.com/questions/16090869/… você também pode olhar em Ferramentas XML
Alex

1
Eu tenho problemas para entender por que isso é considerado fora do assunto, honestamente ...
Victor Schröder,

Respostas:


90

Dê uma olhada no Projeto HTML Tidy: http://www.html-tidy.org/

O avô das ferramentas HTML, com suporte para padrões modernos.

Costumava haver um fork chamado tidy-html5 que se tornou oficial. Aqui está seu repositório GitHub .

Tidy é um aplicativo de console para Mac OS X, Linux, Windows, UNIX e muito mais. Ele corrige e limpa documentos HTML e XML corrigindo erros de marcação e atualizando o código legado para padrões modernos.

Para suas necessidades, aqui está a linha de comando para chamar o Tidy:

tidy inputfile.html

14
Obrigado! "tidy -i -m -w 160 -ashtml -utf8 index.html" resolveu o problema! Acontece que o tidy é instalado por padrão no MacOS X - excelente!
Knorv

1
O Tidy estava lutando para obter o recuo até que eu o executei com esta opção (em vez de deixar que o padrão fosse "automático" com -i: tidy - recuo sim
Edward Anderson

2
O Tidy é ótimo como uma ferramenta validadora / lint, mas não é tão bom como um embelezador de código. Dois problemas: (1) ele só pode operar em arquivos, não na entrada padrão (portanto, você não pode, por exemplo, enviar texto selecionado do Notepad ++ para tidy.exe, e fazer com que ele retorne o código formatado para o Notepad ++); (2) Tem problemas para formatar um monte de código, por exemplo: <form><input><input><input><input><input></form>.
thdoan

1
Também modifica o arquivo quando não consegue entender o texto.
Paweł Szczur

Uma observação sobre tidy-html5, se você estiver usando javascript embutido, você precisa incluir, type="text/javascript"caso contrário, tidy irá adicionar<![CDATA[
jcubic

10

Atualização 2018: O homebrew/dupesagora está obsoleto, tidy-html5 pode ser instalado diretamente.

brew install tidy-html5

Resposta original:

Tidydo OS X não suporta HTML5. Mas há ramo experimental em Githubque o faz.

Para obtê-la:

 brew tap homebrew/dupes
 brew install tidy --HEAD
 brew untap homebrew/dupes

É isso aí! Diverta-se!


1
Error: No available formula with the name "tidy". brew install tidy-html5trabalho.
Pysis

De fato brew install tidy-html5funciona e você também não precisa do tap homebrew / dupes.
Ogier Schelvis de

O Tidy faz mais do que apenas formatar o HTML. Ele removerá as tags vazias e reordenará o HTML tecnicamente inválido que seja aceito pelos navegadores (leia-se: é usado na Internet). <p class="a"><div class="b"></div></p>é reordenado <p class="a"></p><div class="b"></div>e algo como <p><div></div></p>simplesmente é excluído. Veja este problema do GitHub . Se você usar o tidy, deve executá-lo em modo silencioso tidy -qe não ignorar nenhum aviso como o trimming empty <p>. Não o use em HTML que você não escreveu.
Boris

6

Para ter uma resposta atualizada e independente do sistema operacional para esta pergunta:

Embora o projeto HTMLTidy original esteja adormecido por mais de 6 anos , um "W3C Community & Business group" que atende pelo nome "HTML Tidy Advocacy Community Group (HTACG)" agora começou a continuar seu desenvolvimento, com o objetivo de torná-lo totalmente compatível com HTML5 . O grupo foi formado em janeiro de 2015 e, embora descrevam o estado atual como "trabalho em andamento", os binários já estão disponíveis para download.



0

Apenas um seguimento tardio de uma questão de OT.

O Homebrew tem um tidy-html5instalado como você esperava.

Está ligado como tidy5.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.