cgit的配置

openSuSE通过build service 为cgit打了包,在这里:http://download.opensuse.org/repositories/devel:/tools:/scm/

这个包包含以下文件:

linux:/srv/www/cgi-bin/cgit # rpm -ql cgit
/etc/cgitrc
/srv/www/cgi-bin/cgit
/srv/www/cgi-bin/cgit/cgit.cgi
/srv/www/htdocs/cgit
/srv/www/htdocs/cgit/cgit.css
/srv/www/htdocs/cgit/cgit.png
/usr/share/man/man5/cgitrc.5.gz

所以呢,如果把 /srv/www/htdocs/cgit配置为一个虚拟主机的document-root,(就如<git.poetpalace.org>那样)

在apache2上要这样写

<VirtualHost *>
        DocumentRoot /srv/www/htdocs/cgit
        ServerName      git.poetpalace.org
        <Directory "/srv/www/htdocs/cgit/">
            AllowOverride None
            Options ExecCGI
            DirectoryIndex /cgi-bin/cgit/cgit.cgi
            Order allow,deny
            Allow from all
        </Directory>
</VirtualHost>

而在lighttpd上,是这样:

$HTTP["host"] == "git.poetpalace.org" {
        server.document-root = "/srv/www/htdocs/cgit"
        index-file.names     = ( "cgit.cgi" )
        cgi.assign           = ( "cgit.cgi" => "/srv/www/cgi-bin/cgit/cgit.cgi" )
}

lighttpd有一点奇怪的是,document-root下面一定要有个cgit.cgi的文件,内容是什么没关系,但是一定要有,不然会报 404 NOT FOUND。 touch cgit.cgi 就可以了。

然后需要按照虚拟主机的路径,修改/etc/cgitrc中css和logo选项的值,也就是在虚拟主机中的路径,在我的环境里面是这样的

css=/cgit.css
logo=/cgit.png

注意不要忘了前面的’/’。

然后翻到文件的尾部,上面有配置repo的例子,像这样:

repo.url=libwp
repo.path=/srv/git/libwp
repo.desc=libwp is library that warps common functions in standard C, Linux system, POSIX, and BSD socket.
repo.owner=lyre@poetpalace.org

这个时候,打开浏览器察看你的页面,应该就可以看到cgit工作了。

嗯,效果好像还不是特别好,没有语法高亮。

编辑你的css文件,加入

table.list td a.ls-dir {
        color: #00f;
}

在tree列表下的目录颜色就会变成蓝色的了。假如没有变色,那是浏览器缓存的css文件还没刷新。

然后来处理语法高亮,cgit包含了一个syntax-highlighting.sh的脚本,不过它使用了一个highlight的第三方程序,需要现在这里下载和安装:http://www.andre-simon.de/

编辑/etc/cgitrc,加入source-filter或者repo.source-filter选项(看你是应用到全部repo还是某一个特定的repo咯),值就是syntax-highlighting.sh脚本的位置。

打开syntax-highlighting.sh,上面有一块注释了的样式表,把这一块复制到你的css文件中,不然语法高亮不会起作用。

打开浏览器察看你的git源吧,注意css文件的缓存。

updatedupdated2022-02-222022-02-22