cgit 설치 시 구문 강조 옵션이 제대로 작동하지 않으며 필요한 매개변수가 모두 있는 경우 명령줄에서 제대로 작동하는지 확인하고 싶었습니다.
옵션이 /etc/cgitrc
올바르게 설정되었습니다.
source-filter=/usr/lib/cgit/filters/syntax-highlighting.sh
예를 들어 bash 파일에서 명령을 실행하면 highlight
css 및span 클래스가 출력에 있지만 파일에서 /usr/lib/cgit/filters/syntax-highlighting.sh를 실행하면 css 및span 태그가 나타납니다. 표시되지 않습니다.
highlight
스크립트의 명령 실제 명령(마지막 줄)은 다음과 같습니다.
exec highlight --force --inline-css -f -I -O xhtml -S "$EXTENSION" 2>/dev/null
#!/bin/sh
# This script can be used to implement syntax highlighting in the cgit
# tree-view by refering to this file with the source-filter or repo.source-
# filter options in cgitrc.
#
# This script requires a shell supporting the ${var##pattern} syntax.
# It is supported by at least dash and bash, however busybox environments
# might have to use an external call to sed instead.
#
# Code considered irrelevant snipped
#
# store filename and extension in local vars
BASENAME="$1"
EXTENSION="${BASENAME##*.}"
[ "${BASENAME}" = "${EXTENSION}" ] && EXTENSION=txt
[ -z "${EXTENSION}" ] && EXTENSION=txt
# map Makefile and Makefile.* to .mk
[ "${BASENAME%%.*}" = "Makefile" ] && EXTENSION=mk
# highlight versions 2 and 3 have different commandline options. Specifically,
# the -X option that is used for version 2 is replaced by the -O xhtml option
# for version 3.
#
# Version 2 can be found (for example) on EPEL 5, while version 3 can be
# found (for example) on EPEL 6.
#
# This is for version 2
#exec highlight --force -f -I -X -S "$EXTENSION" 2>/dev/null
# This is for version 3
exec highlight --force --inline-css -f -I -O xhtml -S "$EXTENSION" 2>/dev/null
답변1
cgit에서 구문 강조를 수행하려면 구문 강조를 지정하는 줄이 저장소 위치 줄 앞에 나타나야 합니다. 아래 제공된 예에서 해당 source-filter
행이 이 행 뒤에 배치 되면 include
구문 강조 표시가 실패합니다 .
source-filter=/usr/lib/cgit/filters/syntax-highlighting.py
include=/home/infosys/sites/cgit.local/www/cgitrepos
확인해 보니 어딘가에 기록되지 않은 이상 버그인 것 같습니다. 어쩌면 일부 디자인 문제에 이것이 필요할 수도 있습니다.
더 많은 정보를 원하시면 방문해주세요https://wiki.archlinux.org/index.php/Cgit