Pergunta

Eu quero gitweb para a saída do mesmo formato diff como git diff --color-words. Alguém sabe como posso fazer isso? Olhei para HTML :: FromANSI, mas não conseguiu fazê-lo funcionar com git diff --color-words a partir da linha de comando.

Foi útil?

Solução

Como você usar HTML :: FromANSI ? Porque ele trabalha para mim, usando o seguinte comando funcionou conforme o esperado

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

Embora se você quiser produção utilizável, e texto branco não apenas visível no fundo preto, você provavelmente precisará configurar HTML :: FromANSI. O scriptlet acima é apenas código de prova de conceito (não ans no melhor estilo).


BTW eu não estou certo sobre a qualidade de HTML :: FromANSI módulo; não instalar (usando cpan) para mim sem força (mas pode ser problema com Term :: VT102 :: Boundless este módulo requer).

ansi2html sub-rotina tem problemas com algumas linhas (eu acho linhas com caráter incorporado / fuga de fim-de-linha, e vazio linha / string), produzindo aviso Use of uninitialized value in concatenation (.) or string at .../HTML/FromANSI.pm line 353, <STDIN> line NN.. É por isso que tive de linhas chomp (e que poderia ser o problema que você teve com tornando HTML :: FromANSI trabalho) .

Além disso, o HTML produzido por este módulo é bastante horrível, usando tag <font face='...' style ='...'> ultrapassada e obsoleta juntamente com tag <span style='...'> moderna; também não vejo uma opção para usar CSS em vez de estilo em linha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top