2011年4月9日土曜日

gitwebでsyntax highlight

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]
と引っかかる。

http://www.andre-simon.de

から 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 件のコメント:

    コメントを投稿