代码之家  ›  专栏  ›  技术社区  ›  singingfish

如何将GitWeb默认diff格式更改为“--颜色词”?

  •  2
  • singingfish  · 技术社区  · 16 年前

    我希望GitWeb输出与 git diff --color-words . 有人知道我怎么做吗?我查看了html::fromansi,但无法使其与 git diff—颜色词 从命令行。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Jakub Narębski adamtaub    16 年前

    你是怎么使用的? 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:弗罗曼西 模块;未安装(使用 cpan )对于我来说没有力量(但这可能是术语::vt102::无限这个模块需要的问题)。

    ansi2html 子程序在某些行上有问题(我认为行尾字符为嵌入/尾随的行,以及空行/字符串),产生 Use of uninitialized value in concatenation (.) or string at .../HTML/FromANSI.pm line 353, <STDIN> line NN. 警告。所以我不得不 chomp 线 (这可能是使html::fromansi工作时遇到的问题) .

    此外,该模块生成的HTML非常可怕,使用过时的和不推荐使用的HTML <font face='...' style ='...'> 与现代风格搭配 <span style='...'> 另外,我看不到使用CSS而不是内联样式的选项。

    推荐文章