我想自定义项目页面(trac / templates / index.html)。
我想使用表格来显示更多项目特定信息。例如,每个项目的管理列表,每个项目的构建状态。这些信息存储在trac的数据库中。
我担心默认模板引擎无法向我提供信息。至少我从它的文档中找不到任何有价值的东西。
所以我决定编写一个python脚本(在服务器端)以生成这些信息作为JSON字符串。我还注入了一个chunk javascript来使用Ajax从这个python脚本中获取JSON。
但我不知道如何使我的python脚本由trac解释。
任何人都可以帮助我吗?
答案 0 :(得分:1)
我通过在所有trac项目页面的顶部添加iframe
,以更简单的方式定制了trac。您可以通过转到trac环境目录中的templates
目录并添加site.html
文件来执行此操作。
我有类似的东西:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/" py:strip="">
<!--! Custom match templates go here -->
<head py:match="head" py:attrs="select('@*')">
${select('*|comment()|text()[local-name()!="script"]')}
<link rel="stylesheet" type="text/css" href="http://mysite.com/nav.css" />
</head>
<body py:match="body" py:attrs="select('@*')">
<iframe src ="http://mysite.com/nav.html"
width="100%"
id="navbar-iframe"
height="30px"
frameborder="0"
marginheight="0"
scrolling="no"
marginwidth="0">
</iframe>
<div id="tdtracbody">
${select('*|text()')}
</div>
</body>
</html>
答案 1 :(得分:1)
Trac扩展API允许您拦截任意页面并插入新数据。例如,BatchModifyPlugin拦截请求并将内容添加到自定义查询页面。请参阅http://trac-hacks.org/browser/batchmodifyplugin/0.11/trunk/batchmod/web_ui.py上的ITemplateStreamFilter方法。有关更多示例,请查看Trac Hacks网站。