Gitdiff到HTML

2024-03-28 10:02:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种从gitdiff输出生成HTML文件的方法,最好使用python。我一直在研究http://docs.python.org/library/difflib.html,但没有弄清楚如何使用gitdiff输出作为输入。在

有什么线索吗?在

非常感谢


Tags: 文件方法orghttpdocshtmllibrary线索
3条回答

也许difr就是你想要的。它接受任何类型的git样式的diff作为输入,并生成一个与GitHub提供的类似的HTML版本。(它嵌入了一个编辑器,用于添加一些小注释。这可能比你要求的要多一点,但我不认为这会妨碍你。)

https://github.com/wspringer/difr

您可以使用pygments命令行脚本来获得语法高亮的HTML输出。在

安装:

$ easy_install Pygments

示例:

^{pr2}$

或更短:

$ git diff | pygmentize -f html -O full,style=emacs -l diff

注意:要查看所有可用样式,请尝试:

$ pygmentize -L styles

p.p.S.要使管道完整,可以使用trick

$ git diff | pygmentize -f html -O full,style=emacs -l diff | browser

我为我的maildiff编写了一个简单的实现

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 = '&nbsp;&nbsp;&nbsp;&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]) 

看看吧。在

相关问题 更多 >