3

我有两个静态 html 文件,一个是主页设计,另一个是常规页面设计。

我有一个规则来确定使用哪一个,如下所示:

<rules css:if-content="body.section-front-page">
    <theme href="home.html" />
</rules>

<rules css:if-not-content="body.section-front-page"
       css:if-content=".portaltype-document">
    <theme href="index.html" />
</rules>

虽然我现在意识到这两个页面有共同的元素,比如标题。有没有办法从一个页面或其他地方使用标题,这意味着如果我对 htmlt 进行更改,只需要在一个地方完成?另一种问法,你能把设计文件混合在一起吗?

4

2 回答 2

0

您只需要一个主题文件即可。

如果您正确设计了主题文件,并且在主页和其他站点页面模板之间确实有共同的元素,这应该是很有可能的。

我想这里的设计是关键...以下站点使用一个主题文件,但主页使用类似于您的 css:if-content="body.section-front-page" 的规则来确定不显示例如左列和右列。

http://www.lotterywest.wa.gov.au/

于 2013-07-19T03:16:20.047 回答
0

这是不可能的。

Diazo(版本 1.0.4-py2.7)只是加载主题文件(请参阅 参考资料diazo.rules.expand_theme(element, theme_doc, absolute_prefix))。加载的文件必须具有合适的etree.parse()格式,并且 AFIK 没有嵌入或包含更多文件或代码的“规则”。

我一直在尝试找到一种解决方法,直到现在都没有成功。我的替代想法是将通用代码作为替换规则包含在内,然后应用其他规则。例如,在您的主题文件中有一个给定的 id,并使用重氮规则对其进行扩展。这仅在您不需要扩展代码时才有效(请参阅我的问题https://stackoverflow.com/q/21703070/1659599)。

如果您只需要添加 html 文本而无需进一步替换,那么您可以通过规则添加它。

于 2014-02-13T16:58:11.697 回答