Программа diff to html (diff2html)

Я ищу программу "diff to html", которая генерирует статическую HTML-страницу из заданного файла diff/patch.

Я, конечно, гуглил, но кроме некоторых скриптов, которые я обнаружил, нет "реального проекта" (например, нет пакета в Debian/Ubuntu).

Я что-то пропустил? Вы можете порекомендовать что-нибудь?

10 ответов

Вы можете использовать diff2html.py, который может создавать параллельный diff на статической html-странице из единого ввода diff. Сценарий написан на Python.

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

pygments имеет подсветку синтаксиса для diff (и для многих других языков) и может использоваться как библиотека или программа командной строки. Это то, что вы ищете? Если нет, пожалуйста, уточните вопрос...

Что-то вроде:

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

хорошо работает, и вы можете изменить цветовую схему diff, изменив цветовую схему в vi.

Как насчет Text-Diff-HTML, difflib.HtmlDiff, CSDiff?

Вы пробовали http://prettydiff.com/ как он игнорирует различия в пустом пространстве и комментариях.

[Отказ от ответственности: это мой сайт]

Лучшее, что я нашел для создания хороших параллельных различий - это скрипт:

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

Хотя он предназначен для использования в RFC, он работает с любым текстовым файлом.

Этот проект также имеет хорошие результаты, но я не уверен, что его можно использовать без Subversion: http://code.google.com/p/coderev/

В Vim также есть 2html, который работает очень хорошо, и он встроен: он берет файл, который Vim знает, как выделить его синтаксис, и создает HTML с правильным форматированием. Чтобы использовать его, просто откройте нужный файл с помощью Vim и создайте скрипт 2html. Откроется преобразованный файл в новом буфере, который можно сохранить. Вот:

vim example.diff

а затем в Vim,

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

Я использую htmlize в Emacs. Не поставляется с Emacs и предполагает, что вы используете Emacs. Полагается на подсветку синтаксиса режима Diff Emacs. Хорошо только для одного файла за раз. Делает правильную вещь для меня.

Я нашел кодерев, демо выглядит красиво

Другие вопросы по тегам