0

我正在为 Trac 安装制作引导主题。这是我第一次使用Genshi,所以请耐心等待:)

所以我有以下几点:

<head py:match="head" py:attrs="select('@*')">
      ${select('*|comment()|text()')}
      <link rel="stylesheet" type="text/css" href="${chrome.htdocs_location}css/bootstrap.min.css" />
      <link rel="stylesheet" type="text/css" href="${chrome.htdocs_location}css/style.css" />
</head>

这会加载我的自定义 css,但是 trac 需要使用 JS/css。

所以结果是这样的:

      <link rel="help" href="/pixelperfect/wiki/TracGuide" />
      <link rel="start" href="/pixelperfect/wiki" />
      <link rel="stylesheet" href="/pixelperfect/chrome/common/css/trac.css" type="text/css" />
      <link rel="stylesheet" href="/pixelperfect/chrome/common/css/wiki.css" type="text/css" />
      <link rel="stylesheet" type="text/css" href="/pixelperfect/chrome/common/css/bootstrap.min.css" />
      <link rel="stylesheet" type="text/css" href="/pixelperfect/chrome/common/css/style.css" />

一切都很好,除了我想将 trac.css 完全排除在外。

所以我的问题是双重的:1. genshi 怎么知道要加载什么?它显示的所有 css/js 文件的清单在哪里。2.这是genshi还是python做的?

任何帮助和相关阅读表示赞赏!:)

谢谢!

4

1 回答 1

1

On 1:CSS 文件的信息累积在请求的 Chrome 属性 (req.chrome['links']) 的 'links' 字典中,对于 JS 文件,它是 'scripts' 字典。分别参见add_linkadd_script函数trac.web.chrome

默认样式表直接添加到 Chrome 对象中。请参阅add_stylesheet调用trac.web.chrome.Chrome.prepare_request()方法。

On 2:它是 Request 对象的一部分,由 Genshi 处理。无论如何,准备工作都是在 Python 中完成的,但它是在 Trac Python 脚本域中,而不是在 Genshi Python 脚本中。

于 2014-09-25T19:46:37.273 回答