gitwebでsyntax highlightを試みる
gitをソースからinstallすると、repositoryをブラウザから見るためのgitweb.cgiがついてくる。ちょっとブラウザから見たいときにはwebrickでhttpサーバを立ちあげれば、localでも見ることができるし、git repository が置いてあるサーバに置いておくと、ブラウザさえあればどこからでもソースや履歴が閲覧できて、とても便利。ただ、ちょっと不満なのが syntax highlight されていない点。検索してみても、 "gitでsyntax highlightできないの?"と聞く mailing list とかばかりヒットして、どうすればいいのか分からなかった。また、日本語の情報も見つけられなかった。ただ、 mailing list の log を見ていくと、どうやら本家には merge された様子。調べた結果、すでに syntax highlight の機能は gitweb.cgi に取り込まれているようだった。今回は serversman@vps 上に置いた gitweb に syntax highlight を有効化させてみたのでそのメモを書いておく。
gitweb.cgiそのものについては、 Pro git や gitweb/README や gitweb/INSTALL を参考。
gitwebとhighlight
git-dir $ grep highlight gitweb/READMEしてみると、何やら
* HIGHLIGHT_BIN Path to the highlight executable to use (must be the one from http://www.andre-simon.de due to assumptions about parameters and output). Useful if highlight is not installed on your webserver's PATH. [Default: highlight]と引っかかる。
から syntax highlight してくれる highlight が手に入るようだ。ちなみに、ほとんどの distro にはパッケージがあるようなので、 local(ubuntu) にも入れておいた。xhtml, terminal, latex などいろいろな出力形式に対応していて便利そう。
install highlight
serversman 上で作業する。
$ tar xvzf highlight-3.4.tar.gz $ cd highlight-3.4 $ less INSTALL $ less READMEとしたあと、
$ makeすると、エラーがたくさん出る。結論から言うと、c++、boost(c++ libraries)、luaがない。
c++とboostは
$ sudo yum install gcc-c++ $ sudo yum install boost-develでinstall。
次にluaをinstall。lua 5.1をダウンロードして、
$ tar xvzf lua-5.1.4.tar.gz $ cd lua-5.1.4 $ makeここで、-lnucursesで、エラー。
$ sudo yum install ncurses-devel $ make $ sudo make installこれでhighlightをbuildする準備が整った。
$ cd highlight-3.4 $ make cli $ sudo make installこれで、OK。あとは gitweb の設定のみ。
gitwebの設定
gitweb.cgiをhighlightで検索すると、defaultでは有効されていないと、と分かる。highlight へのPATH が通っていることを確認し、gitweb_config の projectroot の指定よりも前に、
$feature{'highlight'}{'default'} =[1];と書く。 default で highlight を適用させる suffix が gitweb.cgi で指定されているので、そこにいくつかルールを追加する。ここまで来れば、
色を変更したければ、 static/gitweb.css の一番最後にある hightlight の色指定を変更する。あるいは、コマンドラインから
$ highlight -s emacs hoge.rb > hoge.htlmなどとしたときに、一緒に出てくる highlight.css を参考に設定すればよい。スタイル一覧は作者の web site から見ることができる。
ちなみに
他の環境にhighlightの2.X系を入れてみたところ、 lua がないけど install できた。2.X系の方が楽だったかもしれない。
0 件のコメント:
コメントを投稿