В настоящее время работаю над настраиваемой веб-страницей, которая показывает доступные проекты, которые у меня есть в Trac (1.0.1). Я использую mod_python для подключения интерфейса trac. Я нашел для этого стандартную страницу, но там не было списка репозиториев. На странице были показаны некоторые переменные для связи с различными проектами, но я не могу найти переменные для разных репозиториев внутри проектов.
Я настроил веб-страницу, прочитав это: http://trac.edgewall.org/wiki/TracInterfaceCustomization (в разделе Внешний вид сайта)
Краткое содержание; редактирование ../conf.d/trac.conf:
PythonOption TracEnvParentDir /parent/dir/of/projects
PythonOption TracEnvIndexTemplate /path/to/template
И делая файл шаблона, я могу редактировать в /path /to /template:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/"
xmlns:xi="http://www.w3.org/2001/XInclude">
<head>
<title>Available Projects</title>
</head>
<body>
<h1>Available Projects</h1>
<ul>
<dl>
<li py:for="project in projects" py:choose="">
<a py:when="project.href" href="$project.href"
title="$project.description">$project.name</a>
## <dd> WANT TO ADD CODE HERE! </dd>
<py:otherwise>
<small>$project.name: <em>Error</em> <br /> ($project.description)</small>
</py:otherwise>
</li>
</dl>
</ul>
</body>
</html>
Так... Код, который я хочу добавить, выглядит примерно так:
<dd py:for="repos in project.repository" py:choose="">
<a py:when="repos.href" href="$repos.href"> $repos.name</a> </dd>
Я не могу понять, где добавить переменные, или если уже есть некоторые переменные, которые я могу использовать. После поиска по файлам казалось, что main.py как-то связан с переменными (/usr/local/Trac-1.0.1/trac/web/main.py), но на первый взгляд это было нелегко просто добавьте больше переменных.
Есть ли простой способ найти остальные переменные? И насколько сложно добавить больше переменных? Возможно, будет легче сделать это альтернативным способом? Все, что мне нужно, это динамически связываться с репозиториями.