URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

Mercurialサーバにテーマを追加

 主にスクリプト管理用としてMercurialサーバを構築してWEBブラウザからアクセスできるようにしていますが、WEBブラウザで表示したときの外観がデフォルトのテーマだと物足りなくなってきたので追加してみました。
 その時のメモです。

 テーマについてはオフィシャルのWikiでデフォルトで含まれているもの以外にもいくつか紹介されていますし、ネットで探せば他にも見つかるでしょう(Bootstrapを利用したものなんかも見つかります)。
 もちろん、自分で作るということもできます。

 ダウンロードしたテーマは、Mercurialの"templates"ディレクトリに配置します。
 自分の環境はCentOS 6に"easy_install"でMercurialをインストールしましたが、その場合は"/usr/lib/python2.6/site-packages/mercurial-3.3.2-py2.6-linux-i686.egg/mercurial/templates"というパスになりました。

# ls -l /usr/lib/python2.6/site-packages/mercurial-3.3.2-py2.6-linux-i686.egg/mercurial/templates/
合計 60
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 atom
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 coal
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 gitweb
-rw-r--r-- 1 root root 1370  3月  9 13:52 2015 map-cmdline.bisect
-rw-r--r-- 1 root root  842  3月  9 13:52 2015 map-cmdline.changelog
-rw-r--r-- 1 root root  460  3月  9 13:52 2015 map-cmdline.compact
-rw-r--r-- 1 root root 2663  3月  9 13:52 2015 map-cmdline.default
-rw-r--r-- 1 root root 2679  3月  9 13:52 2015 map-cmdline.phases
-rw-r--r-- 1 root root 1606  3月  9 13:52 2015 map-cmdline.xml
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 monoblue
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 paper
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 raw
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 rss
drwxr-xr-x 2 root root 4096  3月  9 13:52 2015 spartan
drwxr-xr-x 2 root root 4096  3月 23 13:47 2015 static

 

 デフォルトのテーマであるPaper等もここに配置されているのが分かります。
 ディレクトリ名がテンプレート名となっており、この中に各種テンプレートファイル"~.tmpl"が配置されます。
 ただし、"easy_install"でインストールした環境だとパスにバージョンが含まれていますので、今後のアップデート時のことを考えるとテーマの実ファイルは別の場所に配置し、ここにはシンボリックリンクを作成するのが良いと思います。

 テーマを配置したら、hgwebの設定ファイル(ここでは"/etc/hgweb.conf")に使用するテーマを記述します。

[web] encoding = UTF-8 style = newstyle allow_archive = gz,zip pygments_style = emacs [extensions] hgext.highlight = [paths] repository_name = /path/to/repository

 上記の例で、[web]セクションの"style = newstyle"がテーマを指定している部分になります("newstyle"がテーマ名)。

 これでWEBブラウザで表示したときの外観が変わります。
 今はGitHubやBitbucketが手軽に使えるので自分でバージョン管理システムを構築する必要もあまりなかったりしますが、せっかくなのでカスタマイズするなりして自分に使いやすい方しにしていきたいですね。