九月 15, 2006

Site-wide layout use KID template.

kid的 py:matchpy:extends 结合使用
可以方便的控制网站的整体页面布局:

py:match 遍历当前文档以及使用 py:extends 引用当前文档的文档,将满足条件的元素(element)及子元素使用声明 py:match 的element替代

要定义全局header和footer可以这样写 layout.kid:

<body match="item.tag=='{http://www.w3.org/1999/xhtml}body'" attrs="item.items()">
<!-- Header -->
<div py:replace="[item.text]+item[:]">
</div>
<!-- Footer -->


其中item.tag是元素的tag,{http://www.w3.org/1999/xhtml} 表明这个xhtml文档的名称空间,[item.text]+item[:] 是被替换掉的body元素下的所有子元素

当 extend 包含body元素时,body元素将用上面的代码代替.并且原文档中body的内容将通过得到保留

由此,我们可以在layout.kid中定义 header 和 footer,其他的文档只要加上
py:extends=" 'layout' "
就可以自动的加上头尾元素了

没有评论: