-1

我在同一台服务器上有多个具有不同环境的 Trac 项目。我想在每个项目页面的顶部有一个指向所有项目的链接列表,这样我就可以在它们之间快速切换,而不必进入 /projects/ 的顶级列表。

理想的解决方案是:

  1. 不需要在每次页面加载时加载所有 Trac 环境。
  2. 添加新项目时自动更新。
  3. 只需要编辑配置和/或模板或添加插件。
  4. 为 Trac 0.11 工作。
4

3 回答 3

2

NavAddPluggin允许自定义主 trac 导航栏您可以为项目的每个跟踪添加菜单选项。要添加新菜单项,请将以下内容添加到trac.ini file.

[navadd]
add_items = project1
project1.target = mainnav
project1.title = Project One
project1.url = http://webserver/trac_project_1

要对订单进行排序,请编辑mainnav选项中的trac.ini

mainnav = project1,wiki,timeline,roadmap,browser,tickets,newticket,search

于 2012-10-11T14:10:32.777 回答
1

要回答如何使用添加菜单的问题site.html,这里有一个非常基本的顶部标题可以帮助您入门 - 粘贴到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)之间切换。

于 2012-12-16T22:21:21.937 回答
0

sudo_o 描述的方法可能是你最好的选择。它会给你一些很好地集成到 Trac 界面的东西。

但是,我想提一下您可能会发现有用的快速n-dirty 替代方案。您可以将每个 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属性有助于解决这个问题)。

于 2012-10-12T19:25:11.123 回答