Trac のプロジェクト一覧のテンプレート

Trac ネタは相当久しぶり。
テンプレートはプロジェクト単位でカスタマイズできるが、プロジェクト一覧はどのプロジェクトにも属さないため、個別のテンプレートでは対応できない。プロジェクト一覧の内容をカスタマイズするためには、作成した ClearSilver Templete をオプション変数 TRAC_ENV_INDEX_TEMPLATE に指定する。*1
Trac 0.9 のデフォルトでは、

<html>
  <head>
    <title>Available Projects</title>
  </head>
  <body>
    <h1>Available Projects</h1>
    <ul><?cs each:project = projects ?>
    <li>
      <?cs if:project.href ?>
        <a href="<?cs var:project.href ?>" title="<?cs var:project.description ?>"><?cs var:project.name ?></a>
      <?cs else ?>
        <small><?cs var:project.name ?>: <em>Error</em> <br /> (<?cs var:project.description ?>)</small>
      <?cs /if ?> </li>
    <?cs /each ?></ul>
  </body>
</html>

となっているが、サーバ/クライアントの設定によっては、

  <a href="<?cs var:project.href ?>" title=...

という場所を

  <a href="<?cs var:project.href ?>/" title=...

としないといけない。httpd.conf では、

PythonOption TracEnvIndexTemplate path/to/clearsilver/templete/file
SetEnv TRAC_ENV_INDEX_TEMPLATE path/to/clearsilver/templete/file

となる。*2

*1:デフォルトフォルダからの相対パスおよび、フルパスでの指定が可能

*2:modpython を利用しているので上しか試していない