Gitweb: Как я вижу исходный код в виде дерева с цветом - PullRequest
18 голосов
/ 31 марта 2010

Я пользуюсь gitweb.

В виде дерева я вижу свой исходный код. Но этот код все в черном цвете, мне нравится настраивать, чтобы добавить подсветку

Ответы [ 5 ]

23 голосов
/ 31 марта 2010

Чтобы включить подсветку синтаксиса в представлении 'blob' в современном gitweb, вам нужно

  1. У вас установлена ​​highlight программа (из пакета 'highlight' 'не из 'source-highlight' или 'src-highlight'; это разные программы).

  2. Сконфигурируйте gitweb для включения подсветки источника.Это можно сделать, добавив следующую строку

    $feature{'highlight'}{'default'} = [1];
    

    в файл конфигурации gitweb для вашей установки, обычно /etc/gitweb.conf.

    См. Раздел «Настройка функций gitweb» в gitweb.conf manpage (и вообще упомянутая man-страница), часть о функции 'highlight', или соответствующие строки в источниках gitweb.

    Примечание: если вы используете gitweb с постоянной средой веб-сервера, такой как mod_perl, FastCGI или PSGI, вам может потребоваться перезапустить скрипт gitweb, если он настроен на чтение конфигурации только один раз.


Оригинальный ответ (исторический)

В настоящее время он не поддерживается, но взгляните на ветку gitweb / web моего репозитория git / jnareb-git.git - эти два коммита добавляютсяПодсветка синтаксиса для gitweb была отправлена ​​в список рассылки git (как RFC = Запросы для комментариев).Эти патчи используют инструмент подсветка из http://www.andre -simon.de /

. Вы можете попытаться выбрать эти два коммита: 5f7b6461 и 4edcf10d .

16 голосов
/ 22 июня 2011

Если вы не хотите изменять файлы пакета, альтернативой процедуре Todochangeusername является установка выделения и добавление в конец файла /etc/gitweb.conf:

$feature{'highlight'}{'default'} = [1];

(без символа \ escape).

3 голосов
/ 10 мая 2011
  1. установить не менее git версии 1.7.5 Ubuntu: https://launchpad.net/~git-core/+archive/ppa
  2. установить gitweb и программу под названием highlight Ubuntu: sudo apt-get install gitweb highlight
  3. Добавить в файл: sudo vim /usr/lib/git-core/git-instaweb
    строка 586: \$feature{'highlight'}{'default'} = [1];
0 голосов
/ 14 октября 2018

У меня была похожая проблема: подсветка синтаксиса была включена только на нескольких языках (C, Makefile и т. Д.). Он не работал для Verilog, хотя он работает при использовании выделения в командной строке.

Глядя на gitweb.cgi, я понимаю, что gitweb поддерживает только подмножество языков. Это также упоминается на справочной странице gitweb.conf, упомянутой в первом ответе. Решение состоит в том, чтобы добавить это к gitweb.conf:

our %highlight_ext;
$highlight_ext{'v'} = 'verilog';
$highlight_ext{'ucf'} = 'verilog';

Измените verilog байт языка, который вы хотели бы поддерживать. Полный список доступных языков находится в /etc/highlight/filetypes.conf. Конечно, вы также должны адаптировать расширения файлов к вашему делу.

0 голосов
/ 04 октября 2016

С Git 2.11+ (4 квартал 2016 года) вы можете принудительно определить язык для подсветки синтаксиса на основе шебанга (например: #!/bin/perl)

Другими словами, подсветка синтаксиса больше не зависит только от имени файла или расширения файла. Он может полагаться на свое содержание , если его спросить.

См. коммит 779a206 , коммит c151aa3 (24 сентября 2016 г.) от Ян Келлинг (ian-kelling) .
(Объединено с Junio ​​C Hamano - gitster - в коммит 3474084 , 03 октября 2016 г.)

gitweb: использовать выделение выделения по Шебангу

«gitweb» может порождать «highlight» для отображения содержимого BLOB-объектов с подсветкой синтаксиса (программирования) для конкретного языка, но только тогда, когда язык известен.
Однако «highlight» можно сказать самому угадать, задав ему опцию «--force», которая была включена.

Двоичный файл "highlight" может в некоторых случаях определять тип языка с помощью содержимого файла, например shebang в первой строке для некоторых языков сценариев.
Используйте это автоопределение для файлов, синтаксис которых неизвестен gitweb.
В этом случае передайте содержимое BLOB-объекта в «highlight --force»; параметр необходим, чтобы он всегда генерировал вывод HTML (включая экранирование HTML).

...