2009-03-13 9 views
50

Estoy buscando un programa "diff to html", que generaría una página html estática a partir de un archivo diff/patch determinado.programa diff to html (diff2html)

He buscado en Google, por supuesto, pero aparte de algunos scripts que he encontrado, no hay un "proyecto real" (por ejemplo, ningún paquete en Debian/Ubuntu).

¿Me perdí algo? ¿Puedes recomendar algo?

+0

https: // diff2html.xyz/parece que responderá a tu pregunta (para cualquier otra persona que busque) – scp

Respuesta

2

Yo uso htmlize en Emacs. No viene con Emacs, y supone que estás usando Emacs. Se basa en el resaltado de sintaxis del modo Diff de Emacs. Solo es bueno para hacer un archivo a la vez. Hace lo correcto para mí.

+1

Una vez que lo instalaste con Mx package-install htmlize (dentro de emacs), simplemente puedes llamar a emacs como 'emacs --file fms-src-77-to- 78.diff -f htmlize-file -f kill-emacs' (aunque esto todavía requiere que pulses enter una vez) –

9
+2

Estas 3 herramientas parecen generar archivos diff. Creo que la pregunta original fue para embellecer las diferencias ya generadas. – jarjar

+0

Para una versión en línea, consulte http://changedetection.com/ y http://imnosy.com/ – onassar

23

pygments tiene resaltado de sintaxis para diff (y para muchos otros idiomas), y se puede utilizar como una biblioteca o un programa de línea de comandos. ¿Es ese el tipo de cosa que estás buscando? Si no agrada a aclarar la cuestión ...

+1

Pygments es genial, es una lástima que no admitan el renderizado de diff lado a lado. – icco

+11

Esto fue útil para mí: 'diff -U9999999 -y file_before.php file_after.php | pygramize -l diff -f html -O lleno -o archivo_diff.html' – jwhitlock

+0

@jwhitlock ¡excelente! Muchas gracias. Sin embargo, tuve que seleccionar '-u' en lugar de' -y' (lado a lado), de lo contrario, diff se quejaba de "opciones de estilo de salida conflictivas". –

4

También hay 2html en Vim, que funciona muy bien, y está integrada: Se necesita un archivo que Vim sabe cómo resaltar su sintaxis, y crea un HTML con el formato correcto. Para usarlo, simplemente abra el archivo deseado con Vim y el script 2html. Abrirá el archivo convertido en un nuevo búfer, que se puede guardar. Aquí:

vim example.diff 

y luego en Vim,

:so /usr/share/vim/vim72/syntax/2html.vim 
:wqa 
6

Ha intentado http://prettydiff.com/ ya que ignora las diferencias en el espacio en blanco y los comentarios.

[exención de responsabilidad: este es mi sitio]

26

Puede utilizar diff2html.py que es capaz de crear un diff de lado a lado en una página HTML estática, a partir de una entrada de diff unificado. El script está escrito en python.

cat foo.diff | python diff2html.py > foo.html 
15

Algo a lo largo de las líneas de:

vim test.diff -c TOhtml -c ":saveas test.html" -c ":q" -c ":q" 

funciona bien, y se puede cambiar el esquema de colores del diff cambiando el esquema de color en vi.

+0

¡Gracias por mencionar TOhtml! ¡Funciona de maravilla! –

+0

¡Y también funciona para vimdiff! –

3

El mejor que he encontrado que produce buenos diferenciaciones de lado a lado es este script:

http://tools.ietf.org/tools/rfcdiff/

Aunque está diseñado para ser utilizado en RFC funciona con cualquier archivo de texto.

Este proyecto también tiene buena salida, pero no estoy seguro de si se puede utilizar sin la subversión: http://code.google.com/p/coderev/