我希望gitweb输出与git diff --color-words
相同的diff格式。有人知道我怎么做吗?我查看了HTML :: FromANSI但无法从命令行使用git diff --color-words
。
答案 0 :(得分: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只是概念代码的证明(不是最好的风格)。
BTW我不确定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而不是内联样式的选项。