pygments で xyzzy-lisp のハイライト

環境は

まずは pygments をインストール

easy_install でサクッと

% sudo easy_install Pygments

おまけ: インストールすると pygmentize なるコマンドがついてくる。これは shell から % pygmentize filename とすると filename の内容に色を付けて出力してくれる。ASCII のエスケープシーケンス?で色付けするので末端上で syntax-highlight されたコードを見れる。どんなコードだったか確認とかいうときに cat の代わりに使うとちょっと便利かも。

trac.ini を編集

pygmemnts は common-lisp の syntax-highlight をサポートしてるので、ちょっと違うがこれを適用することにする。
ただ、trac の方がそのままだと *.l なんてファイルやら #!lisp とかいうコードを common-lisp でという風に pygments に投げないようなので、その辺を trac.ini で指定してやればおk。

[mimeviewer]
(中略)
mime_map = (中略),text/x-common-lisp:lisp,text/x-common-lisp:l
(以下略)

どうやらこんだけ。
書式は :<拡張子> を ,(カンマ)区切りでいくつでも。で、trac は指定された拡張子のファイルなら対応する mime-type で pygments に色付けさせる模様。pygments でサポートされてるフォーマットと mime-type は Available lexers — Pygments で確認できる。
変更を保存したら apache を再起動しておく。reload じゃダメらしい。

ちゃんと色付いたか見てみる

リポジトリブラウザからリポジトリに突っ込んだ *.l な名前の xyzzy-lisp を見てみる。色付いてるはず。
Wiki ページのコードは

{{{
#!lisp
(defun foo (bar)
   (hoge (fuga bar)))
}}}

とか書けば、色が付くはず。

でも paren が無いと lisp とか読めやしねー。