Git-diff a HTML

Estoy buscando una manera de producir archivos HTML a partir de una salida de gitdiff, preferiblemente usando python. He estado buscando en http://docs.python.org/library/difflib.html sin poder averiguar cómo usar la salida de git-diff como entrada.

¿Cualquier pista?

Muchas gracias

Podría usar el script de línea de comandos de pygments para obtener un resultado HTML resaltado de syntax.

Instalación:

$ easy_install Pygments 

Ejemplo:

 $ 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 

O más corto:

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

PS Para ver todos los estilos disponibles, intente:

 $ pygmentize -L styles 

PPS Para completar el proceso, puedes usar este truco :

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

Tal vez difr eres tú lo que estás buscando. Toma cualquier tipo de estilo git diff como entrada y produce una versión HTML del mismo que es bastante similar a lo que GitHub te daría. (Y incorpora un editor para agregar algunos pequeños comentarios. Eso podría ser un poco más de lo que pediste, pero no creo que se interponga en el camino).

https://github.com/wspringer/difr

Escribí una implementación simple para mi maildiff.

 def getHtml(diffData): """ This method convertes git diff data to html color code """ openTag = "" nbsp = '    ' return ''.join([("%s%s%s%s%s
" % (openTag, '#ff0000' if line.startswith('-') else ('#007900' if line.startswith('+') else '#000000'), openTagEnd, nbsp*line.count('\t') ,line)) for line in diffData])

Échale un vistazo.