Python Git差异到HTML
我正在寻找一种从git diff输出生成HTML文件的方法,最好使用python。我一直在研究如何使用git diff输出作为输入 有线索吗 非常感谢您可以使用命令行脚本获得语法高度灵活的HTML输出 安装:Python Git差异到HTML,python,html,git,diff,Python,Html,Git,Diff,我正在寻找一种从git diff输出生成HTML文件的方法,最好使用python。我一直在研究如何使用git diff输出作为输入 有线索吗 非常感谢您可以使用命令行脚本获得语法高度灵活的HTML输出 安装: $ easy_install Pygments 例如: $ git diff HEAD^1 > last.diff $ pygmentize -f html -O full,style=trac -l diff -o last.diff.html last.diff $ # ma
$ easy_install Pygments
例如:
$ git diff HEAD^1 > last.diff
$ pygmentize -f html -O full,style=trac -l diff -o last.diff.html last.diff
$ # mac only
$ open last.diff.html
或更短:
$ git diff | pygmentize -f html -O full,style=emacs -l diff
注意:要查看所有可用样式,请尝试:
$ pygmentize -L styles
p.p.S.要使管道完整,您可以使用以下方法:
也许你就是你要找的人。它将任何类型的git样式的diff作为输入,并生成一个HTML版本,它与GitHub提供给您的非常相似。(它还嵌入了一个编辑器,用于添加一些小评论。这可能比您要求的要多一点,但我认为这不会妨碍您的工作。)
我为我的
def getHtml(diffData):
“”“此方法将git diff数据转换为html颜色代码
"""
openTag=“”
nbsp=“”
返回“”。对于diffData中的行,join((“%s%s%s%s%s%s
”%(openTag,“#ff0000”if line.startswith(“-”)else(“#007900”if line.startswith(“+”)else“#000000”)、openTagEnd、nbsp*line.count(“\t”)、line)))
请看一看。非常类似-可能对您有用。谢谢,但这不是我想要的。很抱歉,我的问题不够清楚,也许这确实值得一看,但我担心pygment仅限于语法突出显示。常规的差异输出使用“ascii”以图形方式显示两个文件之间的差异,我们要做的是以图形方式显示这些差异,或者通过并排显示两个文件(如wikipedia),或者例如通过使用css属性(如“overline”)来显示删除的块。
$ git diff | pygmentize -f html -O full,style=emacs -l diff | browser
def getHtml(diffData):
""" This method convertes git diff data to html color code
"""
openTag = "<span style='font-size: .80em; color: "
openTagEnd = ";font-family: courier, arial, helvetica, sans-serif;'>"
nbsp = ' '
return ''.join([("%s%s%s%s%s</span><br>" % (openTag, '#ff0000' if line.startswith('-') else ('#007900' if line.startswith('+') else '#000000'), openTagEnd, nbsp*line.count('\t') ,line)) for line in diffData])