2

我希望 gitweb 输出与git diff --color-words. 有人知道我该怎么做吗?我查看了 HTML::FromANSI 但无法git diff --color-words从命令行使用它。

4

1 回答 1

2

你是如何使用HTML::FromANSI 的?因为它对我有用,所以使用以下命令按预期工作

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

虽然如果您想要可用的输出,而不是在黑色背景上几乎不可见的白色文本,您可能需要配置 HTML::FromANSI。上面的 scriptlet 只是概念验证代码(不是最好的样式)。


顺便说一句,我不确定HTML::FromANSI模块的质量;它没有cpan为我安装(使用)没有强制(但它可能是 Term::VT102::Boundless 这个模块需要的问题)。

ansi2html子例程的某些行有问题(我认为带有嵌入/尾随行尾字符和空行/字符串的行),会产生Use of uninitialized value in concatenation (.) or string at .../HTML/FromANSI.pm line 353, <STDIN> line NN.警告。这就是我不得不chomp排队的原因(这可能是您在制作 HTML::FromANSI 工作时遇到的问题)

此外,该模块生成的 HTML 非常可怕,使用过时和不推荐使用<font face='...' style ='...'>的标签以及现代<span style='...'>标签;我也没有看到使用 CSS 代替内联样式的选项。

于 2009-10-05T07:50:21.500 回答