Git-diff в HTML - PullRequest
       5

Git-diff в HTML

5 голосов
/ 13 января 2010

Я ищу способ получения HTML-файлов из вывода git-diff, предпочтительно с использованием python. Я смотрю на http://docs.python.org/library/difflib.html, но не могу понять, как использовать вывод git-diff в качестве входных данных.

Любая подсказка?

Большое спасибо

Ответы [ 3 ]

8 голосов
/ 13 января 2010

Вы можете использовать скрипт командной строки pygments , чтобы получить выделенный синтаксис вывод 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

$ # mac only
$ open last.diff.html

Или короче:

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

P.S. Чтобы увидеть все доступные стили, попробуйте:

$ pygmentize -L styles

P.P.S. Чтобы завершить конвейер, вы можете использовать этот трюк :

$ git diff | pygmentize -f html -O full,style=emacs -l diff | browser
1 голос
/ 25 мая 2015

Я написал простую реализацию для моего 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]) 

посмотрите на это.

1 голос
/ 09 июля 2013

Возможно difr это то, что вы ищете. Он принимает любой вид стиля git diff в качестве входных данных и создает его HTML-версию, которая очень похожа на ту, что выдает GitHub. (И в него встроен редактор для добавления небольших комментариев. Это может быть немного больше, чем вы просили, но я не думаю, что это мешает.)

https://github.com/wspringer/difr

...