首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git-diff to HTML

Git-diff to HTML
EN

Stack Overflow用户
提问于 2010-01-13 08:56:03
回答 3查看 5.4K关注 0票数 6

我正在寻找一种从git-diff输出生成HTML文件的方法,最好使用python。我一直在研究http://docs.python.org/library/difflib.html,但不知道如何使用git-diff输出作为输入。

有什么线索吗?

非常感谢

EN

回答 3

Stack Overflow用户

发布于 2010-01-14 00:01:15

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

安装:

代码语言:javascript
复制
$ easy_install Pygments

示例:

代码语言:javascript
复制
$ 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

或更短:

代码语言:javascript
复制
$ git diff | pygmentize -f html -O full,style=emacs -l diff

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

代码语言:javascript
复制
$ pygmentize -L styles

附注:要完成管道,您可以使用此trick

代码语言:javascript
复制
$ git diff | pygmentize -f html -O full,style=emacs -l diff | browser
票数 9
EN

Stack Overflow用户

发布于 2013-07-10 02:40:26

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

https://github.com/wspringer/difr

票数 1
EN

Stack Overflow用户

发布于 2015-05-25 18:22:51

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

代码语言:javascript
复制
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]) 

看一看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2053657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档