omae です。Trac 0.11.5 がリリース間近(いまのところ2009/07/07予定)ですね。さっそく 0.11.5rc1 をダウンロードして 社内の Trac 環境に投入してみました。いまのところ特に問題らしいところもなく動いているようです。
ところで TracWiki では Wiki ページの名前に / を用いることで階層構造を表現できるようになっています。そういったページを参照するとページ名に合わせてパンくずリストも表示されます(この機能は 0.11 から)。
SandBox/2009/07/03
というページを作った場合、以下のようなパンくずリストが表示されます。
これはこれでよいのですが、実際には Log/2009
や Log/2009/07
に対応する Wiki ページはほとんど作りません(少なくとも社内では)。そのため、Log/2009
を参照すると以下のようなそのページを作成するかどうかを聞いてくるようなページになります。
この内容にそのページ名の下位ページに対する RecentChanges
と TitleIndex
を表示しておけば、こういうページをその都度作成しておかなくてもよいのではないかと考えました。
まず Wiki ページがないときに使用される template ファイルは trac/wiki/templates/wiki_view.html
になります。このファイルを $TRACENV/templates/wiki_view.html
にコピーします。このファイルは Trac インストールディレクトリにありますので、そこから持ってきます。
次にコピーした wiki_view.html
を編集してページがないときの処理を追加します。変更後、必要なら Web サーバーを再起動してください。
--- wiki_view.html.orig 2009-01-29 04:55:06.000000000 +0900
+++ wiki_view.html 2009-06-24 00:02:57.000000000 +0900
@@ -98,6 +98,7 @@
</py:if>
</py:with>
+ <div py:if="not page.exists" xml:space="preserve">
+ ${wiki_to_html(context, "----\n== Recent Changes ==\n[[RecentChanges(%s/,5)]]\n----\n== Title Index ==\n[[TitleIndex(%s/,format=group)]]" % (page.name, page.name))}
+ </div>
</div>
</body>
</html>
ここでは page
変数が要求されている Wiki ページであり、wiki_to_html
変数が TracWiki 文字列を HTML に変換するメソッドになっています。
これでページがない場合に RecentChanges
, TitleIndex
が表示されるようになります。さきほどの Log/2009
を参照すると以下のようになります。
Trac の template を変更して「うちではこんなことしてますよ」とかあれば、教えてください。