Una bonita impresora HTML de línea de comandos: hacer legible el HTML desordenado [cerrado]

105

Estoy buscando recomendaciones para impresoras HTML bonitas que cumplan los siguientes requisitos:

  • Toma HTML como entrada y luego genera una versión bien formateada / con sangría correcta pero "gráficamente equivalente" del HTML de entrada dado.
  • Debe admitir la operación de línea de comandos.
  • Debe ser de código abierto y ejecutarse en Linux.
Knorv
fuente
5
Otras opciones son pup(sin argumentos) xmllint --format --html -, y xml fo --html.
nisetama
1
curl httpbin.org | tidy -im
Fabijan Bajo
También: hxnormalize de html-xml-utils (Debian)
eligió
relacionado: stackoverflow.com/questions/16090869/… también puede buscar en XML Tools
Alex
1
Tengo problemas para entender por qué esto se considera fuera de tema, honestamente ...
Victor Schröder

Respuestas:

90

Eche un vistazo al proyecto HTML Tidy: http://www.html-tidy.org/

El abuelo de las herramientas HTML, con soporte para estándares modernos.

Solía ​​haber una bifurcación llamada tidy-html5 que desde entonces se convirtió en la cosa oficial. Aquí está su repositorio de GitHub .

Tidy es una aplicación de consola para Mac OS X, Linux, Windows, UNIX y más. Corrige y limpia documentos HTML y XML al corregir errores de marcado y actualizar el código heredado a los estándares modernos.

Para sus necesidades, aquí está la línea de comando para llamar a Tidy:

tidy inputfile.html
Jonjbar
fuente
14
¡Gracias! "tidy -i -m -w 160 -ashtml -utf8 index.html" hizo el truco! Resulta que tidy está instalado por defecto en MacOS X - ¡excelente!
Knorv
1
Tidy estaba luchando para obtener la sangría hasta que la ejecuté con esta opción (en lugar de dejarla por defecto en "auto" con -i: tidy --indent yes
Edward Anderson
2
Tidy es excelente como herramienta de validación / pelusa, pero no es tan bueno como embellecedor de código. Dos problemas: (1) solo puede operar en archivos, no en la entrada estándar (por lo que no puede, por ejemplo, enviar texto seleccionado desde Notepad ++ a tidy.exe, y hacer que devuelva el código formateado a Notepad ++); (2) Tiene problemas para dar formato a una gran cantidad de código, por ejemplo: <form><input><input><input><input><input></form>.
thdoan
1
También modifica el archivo cuando no puede entender el texto.
Paweł Szczur
Una nota sobre tidy-html5, si está usando javascript en línea, debe incluirlo; de lo type="text/javascript"contrario, tidy agregará<![CDATA[
jcubic
10

Actualización 2018: El homebrew/dupesahora está en desuso, ordenado en HTML5 puede ser instalado directamente.

brew install tidy-html5

Respuesta original:

Tidyde OS X no es compatible HTML5. Pero hay una rama experimental en la Githubque sí.

Para conseguirlo:

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

¡Eso es! ¡Que te diviertas!

Paul Brit
fuente
1
Error: No available formula with the name "tidy". brew install tidy-html5trabajos.
Pysis
De hecho brew install tidy-html5funciona y tampoco necesitas el grifo de homebrew / dupes.
Ogier Schelvis
Tidy hace más que dar formato al HTML. Será eliminar etiquetas vacías y reordenación HTML técnicamente no válido que se acepte por los navegadores (es decir: se utiliza en Internet). <p class="a"><div class="b"></div></p>se reordena como <p class="a"></p><div class="b"></div>y algo como <p><div></div></p>simplemente se elimina. Vea este problema de GitHub . Si usa tidy, debe ejecutarlo en modo silencioso tidy -qy no ignore ninguna advertencia como trimming empty <p>. No lo use en HTML que no escribió.
Boris
6

Para tener una respuesta actualizada, independiente del sistema operativo, a esta pregunta:

Si bien el proyecto HTMLTidy original ha estado inactivo durante más de 6 años , un "W3C Community & Business group" que se conoce con el nombre "HTML Tidy Advocacy Community Group (HTACG)" ha comenzado a continuar su desarrollo, con el objetivo de convertirlo totalmente compatible con HTML5 . El grupo se formó en enero de 2015 y, aunque describen el estado actual como "trabajo en curso", los binarios ya están disponibles para descargar.

zb226
fuente
1

Creo que HTML tidy es uno de los nombres más conocidos en ese campo.

Pekka
fuente
0

Solo un seguimiento tardío de una pregunta de OT.

Homebrew tiene tidy-html5instalado como era de esperar.

Está vinculado como tidy5.

Dave Newton
fuente