Программа 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.
Вы пробовали 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. Хорошо только для одного файла за раз. Делает правильную вещь для меня.