如何使用重氮使用常见的标题替代页面

时间:2013-07-18 04:21:25

标签: plone diazo

我有两个静态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进行更改,它只需要在一个地方完成?另一种询问方式,你可以将设计文件混合在一起吗?

2 个答案:

答案 0 :(得分:0)

你需要只有一个主题文件才能做到这一点。

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

我想这里的设计是关键...以下网站使用一个主题文件,但使用与您的css类似的规则有一个非常不同的主页:if-content =“body.section-front-page”以确定不是例如,显示左右列。

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

答案 1 :(得分: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文本,那么您可以通过规则添加它。