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.
Knorv
fonte
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
Jonjbar
fonte
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!

Paul Brit
fonte
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.

zb226
fonte
1

Acho que HTML tidy é um dos nomes conhecidos nesse campo.

Pekka
fonte
0

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

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

Está ligado como tidy5.

Dave Newton
fonte