Frage

Ich möchte gitweb das gleiche diff-Format als git diff --color-words ausgegeben wird. Weiß jemand, wie kann ich das tun? Ich schaute auf HTML :: FromANSI aber konnte es nicht mit git diff --color-words von der Kommandozeile erhalten zu arbeiten.

War es hilfreich?

Lösung

Wie haben Sie HTML :: FromANSI ? Weil es für mich funktioniert, mit dem folgenden Befehl Arbeitete als beabsichtigt

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

Obwohl, wenn Sie verwendbar ausgegeben werden soll, und nicht die kaum sichtbaren weißen Text auf schwarzem Hintergrund, würden Sie wahrscheinlich brauchen, um configure HTML :: FromANSI. Die obige scriptlet ist nur Proof of Concept-Code (AM nicht in bestem Stil).


BTW bin ich nicht sicher über die Qualität der HTML :: FromANSI -Modul; es ist nicht installiert worden (cpan verwenden) für mich ohne Kraft (aber es könnte sein Problem mit Term :: VT102 :: Boundless dieses Modul erfordert).

ansi2html Unterprogramm Probleme mit einigen Linien (ich glaube, Linien mit eingebetteten / hinteren End-of-line Zeichen und Leerzeile / string), Use of uninitialized value in concatenation (.) or string at .../HTML/FromANSI.pm line 353, <STDIN> line NN. Warnung erzeugt wird. Deshalb habe ich zu chomp Linien hatte (und das könnte das Problem sein Sie machen musste HTML :: FromANSI Arbeit) .

Auch die HTML von diesem Modul erzeugt wird, ziemlich abscheuliche, mit veraltete und veraltet <font face='...' style ='...'> Tag zusammen mit modernem <span style='...'>-Tag; Ich habe nicht eine Option zu verwenden CSS auch anstelle von Inline-Stil sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top