我正在寻找一款“将diff转换为html”的程序,它可以从给定的diff/patch文件生成静态html页面。
我当然已经谷歌搜索过了,但除了一些脚本外,没有什么“真正的项目”(例如,在Debian/Ubuntu中没有软件包)。
我有遗漏什么吗?你能推荐一些东西吗?
您可以使用diff2html.py。该工具能够从一个统一的diff输入中创建一个静态html页面并显示并排的差异。该脚本是用Python编写的。
cat foo.diff | python diff2html.py > foo.html
Pygments 支持 diff 语法高亮以及许多其他编程语言的语法高亮,可以作为库或命令行程序使用。这符合您要求的吗?如果不是,请澄清问题...
diff -U9999999 -y file_before.php file_after.php | pygmentize -l diff -f html -O full -o file_diff.html
(这是一条命令,可以将两个文件进行比较,并通过pygmentize将差异以HTML格式输出到file_diff.html文件中) - jwhitlock-u
而不是 -y
(并排显示),否则 diff 会抱怨“冲突的输出样式选项”。 - Christophe Muller类似以下内容:
vim test.diff -c TOhtml -c ":saveas test.html" -c ":q" -c ":q"
这很有效,你可以通过在vi中更改配色方案来更改差异的颜色方案。
vimdiff $PREV $NEW -c TOhtml -c ":saveas $OUT" -c ':q!' -c ':q!' -c ':q!'
- Richard Wheeldon在Vim中还有一个名为2html的功能,它非常好用,并且是内置的。它可以将Vim能够高亮语法的文件转换为具有正确格式的HTML文件。
使用方法很简单,只需在Vim中打开想要转换的文件,然后执行2html脚本即可。它会在新的缓冲区中打开转换后的文件,你可以保存它。这里:
vim example.diff
然后在Vim中,
:so /usr/share/vim/vim72/syntax/2html.vim
:wqa
http://tools.ietf.org/tools/rfcdiff/
虽然它是为RFC而设计的,但它可以用于任何文本文件。
这个项目也有很棒的输出,但我不确定是否可以在没有Subversion的情况下使用: http://code.google.com/p/coderev/
我在Emacs中使用htmlize。它不是Emacs自带的,需要你使用Emacs。它依赖于Emacs的Diff模式语法高亮。只能一次处理一个文件。对我来说做了正确的事情。