我在同一台服务器上有多个具有不同环境的Trac项目。 我希望在每个项目页面的顶部有一个指向所有项目的链接列表,这样我就可以在它们之间快速切换,而不必转到/projects/的顶级列表。
理想的解决方案是:
- 不需要在每次页面加载时加载所有Trac环境。
- 添加新项目时自动更新。
- 只需要编辑配置和/或模板或添加插件。
- 为 Trac 0.11 工作。
NavAddPluggin 允许自定义主 trac 导航栏。您可以为项目的每个跟踪添加菜单选项。要添加新菜单项,请将以下内容添加到trac.ini file
中。
[navadd]
add_items = project1
project1.target = mainnav
project1.title = Project One
project1.url = http://webserver/trac_project_1
要对顺序进行排序,请编辑trac.ini
中的mainnav
选项
mainnav = project1,wiki,timeline,roadmap,browser,tickets,newticket,search
要回答如何使用 site.html
添加 meny 的问题,这里有一个非常基本的顶部标题来帮助您入门 - 粘贴到site.html
占位符中:
<!--! A top header -->
<py:match path="body" once="True">
<body py:attrs="select('@*')">
<div id="top">
<a py:if="req.href() != '/one'" href="/one">one</a>
<a py:if="req.href() != '/two'" href="/two">two</a>
<a py:if="req.href() != '/three'" href="/three">three</a>
</div>
${select('*|comment()|text()')}
</body>
</py:match>
该示例使用非常简单的逻辑,只是隐藏了当前项目。您可能希望以不同的方式执行此操作,通常使用突出显示或类似方法。
有关高级示例,请参阅 Trac 布局配方。这是 edgewall.org 使用的布局,用于在各种项目(Trac,Genshi,Babel,Bitten)之间切换。
sudo_o描述的方法可能是你最好的选择。 它将为您提供一些与Trac界面很好地集成在一起的东西。
但是,我想提一个您可能会发现有用的快速肮脏替代方案。 您可以将每个Trac页面左上角的徽标配置为在单击时链接到特定页面。 许多Trac安装使用它来链接回起始页。 但是,该链接是可配置的,您可以将其指向项目列表页面。 在trac.ini
文件中:
[header_logo]
src = site/your_logo.png
link = /url/to/projects/page
alt = Click to load projects listing
此方法使您可以轻松访问项目列表,并且不需要向Trac菜单添加任何额外的条目。 添加或删除项目时,不必修改每个trac.ini
文件即可更新链接。 缺点是需要额外的单击才能进入另一个项目,并且某些用户可能不认为此方法很直观(设置 alt
属性对此有所帮助)。