Obecnie pracuję nad dostosowaną stroną internetową, która pokazuje dostępne projekty, które mam w Tracu (1.0.1). Używam mod_python do połączenia interfejsu trac. Znalazłem standardową stronę do tego, ale nie wyświetlała listy repozytoriów. Strona pokazała kilka zmiennych, które można powiązać z różnymi projektami, ale nie mogę znaleźć zmiennych dla różnych repozytoriów wewnątrz projektów.
Skonfigurowałem stronę internetową po przeczytaniu tego: http://trac.edgewall.org/wiki/TracInterfaceCustomization (w wyglądzie strony)
Krótkie podsumowanie; edycja ../conf.d/trac.conf:
PythonOption TracEnvParentDir /parent/dir/of/projects
PythonOption TracEnvIndexTemplate /path/to/template
I tworzenie pliku szablonu mogę edytować w / 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>
Więc ... Kod, który chcę dodać to coś w stylu:
<dd py:for="repos in project.repository" py:choose="">
<a py:when="repos.href" href="$repos.href"> $repos.name</a> </dd>
Nie mogę dowiedzieć się, gdzie dodać zmienne, a jeśli już istnieją jakieś zmienne, których mogę użyć. Po przeszukaniu plików wydawało się, że main.py ma coś wspólnego ze zmiennymi (/usr/local/Trac-1.0.1/trac/web/main.py), ale na pierwszy rzut oka nie wydawało się to łatwe po prostu dodaj więcej zmiennych.
Czy istnieje prosty sposób na znalezienie pozostałych zmiennych? A jak trudno jest dodać więcej zmiennych? Czy może łatwiej będzie to zrobić alternatywnie? Potrzebuję tylko dynamicznego linkowania do repozytoriów