Gitweb: Как я вижу исходный код в виде дерева с цветом
Я использую GitWeb.
В виде дерева я вижу мой исходный код. Но этот код все в черном цвете, я люблю настраивать, чтобы добавить подсветку
5 ответов
Чтобы включить подсветку синтаксиса в представлении blob в современном gitweb, вам нужно
Есть
highlight
установленная программа (из пакета 'highlight', а не из 'source-highlight' или 'src-highlight'; это разные программы).Сконфигурируйте gitweb для включения подсветки источника. Это можно сделать, добавив следующую строку
$feature{'highlight'}{'default'} = [1];
в файл конфигурации gitweb для вашей установки, обычно
/etc/gitweb.conf
,См. Раздел "Настройка функций gitweb" в справочной странице gitweb.conf(и упомянутой справочной странице в целом), часть о функции 'highlight' или соответствующие строки в источниках gitweb.
Примечание: если вы используете gitweb с постоянной средой веб-сервера, такой как mod_perl, FastCGI или PSGI, вам может потребоваться перезапустить скрипт gitweb, если он настроен на чтение конфигурации только один раз.
Оригинальный ответ (исторический)
В настоящее время он не поддерживается, но посмотрите на ветку gitweb / web моего репозитория git / jnareb-git.git - эти два коммита, добавляющие подсветку синтаксиса в gitweb, были отправлены в список рассылки git (как патчи RFC = Request For Comments). Эти патчи используют инструмент выделения из http://www.andre-simon.de/
Вы можете попытаться выбрать эти два коммита: 5f7b6461 и 4edcf10d.
Если вы не хотите изменять файлы пакета, альтернативой процедуре Todochangeusername является установка выделения и затем добавление в конец файла. /etc/gitweb.conf
:
$feature{'highlight'}{'default'} = [1];
(без символа \ escape).
- установить как минимум версию git 1.7.5 Ubuntu: https://launchpad.net/~git-core/+archive/ppa
- установите gitweb и программу с именем highlight Ubuntu:
sudo apt-get install gitweb highlight
- Добавить в файл:
sudo vim /usr/lib/git-core/git-instaweb
строка 586:\$feature{'highlight'}{'default'} = [1];
У меня была похожая проблема: подсветка синтаксиса была включена только на нескольких языках (C, Makefile и т. Д.). Это не работает для Verilog, хотя он работает при использовании подсветки с командной строкой.
Глядя на gitweb.cgi, я понимаю, что gitweb поддерживает только подмножество языков. Это также упоминается в gitweb.conf
Страница man, упомянутая в первом ответе. Решение состоит в том, чтобы добавить это к gitweb.conf
:
our %highlight_ext;
$highlight_ext{'v'} = 'verilog';
$highlight_ext{'ucf'} = 'verilog';
+ Изменить verilog
Быт языка, который вы хотели бы поддержать. Полный список доступных языков находится на /etc/highlight/filetypes.conf
, Конечно, вы также должны адаптировать расширения файлов для вашего случая.
С Git 2.11+ (4 квартал 2016 года) вы можете принудительно определить язык для подсветки синтаксиса на основе шебанга (например: #!/bin/perl
)
Другими словами, подсветка синтаксиса больше не зависит только от имени файла или расширения файла. Он может рассчитывать на его содержание, если его спросить.
Смотрите коммит 779a206, коммит c151aa3 (24 сентября 2016 г.) от Ian Kelling ( ian-kelling
)
(Объединено Юнио С Хамано - gitster
- в комитете 3474084, 03 октября 2016 г.)
gitweb
: использовать выделение Шебанга"gitweb" может порождать "highlight" для отображения содержимого BLOB-объектов с подсветкой синтаксиса (программирования), зависящей от языка, но только тогда, когда язык известен.
Однако можно выделить "основной момент", чтобы угадать саму догадку "--force
"опция, которая была включена.Двоичный файл "highlight" может в некоторых случаях определять тип языка с помощью содержимого файла, например
shebang
в первой строке для некоторых языков сценариев.
Используйте это автоопределение для файлов, синтаксис которых неизвестен gitweb.
В этом случае передайте содержимое BLOB-объекта в "highlight --force"; параметр необходим для того, чтобы он всегда генерировал вывод HTML (включая экранирование HTML).