¿Cómo cambio el formato de diferencias por defecto gitweb a `-color-words`?
Pregunta
Quiero gitweb a la salida del mismo formato diff como git diff --color-words
. ¿Alguien sabe cómo puedo hacer esto? Miré a HTML :: FromANSI pero no pude conseguir que funcione con git diff --color-words
desde la línea de comandos.
Solución
¿Cómo se utiliza HTML :: FromANSI ? Debido a que funciona para mí, usando el siguiente comando funcionó como se esperaba
git diff --color-words HEAD^ HEAD |
perl -wle '
use HTML::FromANSI;
my @lines = <STDIN>;
foreach my $line (@lines) {
chomp $line;
print ansi2html($line);
}' > tmp.html
A pesar de que si se quiere salida útil, y no apenas visible texto blanco sobre fondo negro, es probable que tenga que configurar HTML :: FromANSI. El scriplet anterior es sólo una prueba de concepto (no en la American National Standard mejor estilo).
Por cierto, no estoy seguro acerca de la calidad de HTML :: módulo FromANSI ; no se instaló (usando cpan
) para mí sin fuerza (pero podría ser un problema en esta Term :: :: VT102 sin límites este módulo requiere).
subrutina ansi2html
tiene problemas con algunas líneas (Creo líneas con / detrás carácter incrustado al final de la línea, y la línea / cadena vacía), produciendo la advertencia Use of uninitialized value in concatenation (.) or string at .../HTML/FromANSI.pm line 353, <STDIN> line NN.
. Es por eso que tuve que chomp
líneas (y que podría ser el problema que tenía con la fabricación de HTML :: trabajo FromANSI) .
También el HTML producido por este módulo es bastante horrible, vía punto <font face='...' style ='...'>
anticuada y obsoleta, junto con la etiqueta <span style='...'>
moderna; También no veo una opción para utilizar CSS en lugar de estilo en línea.