在主孩子模板文件中,我希望它只有div标签,每个标签只调用一个渲染的kid文件并在其中粘贴内容。 (比如php中的“include”功能)但我不知道该怎么做。有人有任何想法吗?
答案 0 :(得分:1)
如果你换成genshi而不是默认的孩子,你可以使用include标签:
<xi:include href="menu.html" />
交换到genshi相当容易,我认为这只是一个限制问题。模板标签的工作方式相同。您应该将扩展名从.kid重命名为.html。
答案 1 :(得分:1)
您可以先定义“base_layout.kid”模板:
<html xmlns:py="http://purl.org/kid/ns#">
<head>
<title>App Name - ${page_title}</title>
<link href="layout.css" type="text/css" rel="stylesheet" />
${page_specific_css()}
</head>
<body>
<h1>Now viewing: ${page_title} of App Name</h1>
<content>Default content</content>
<div class="footer">Page Footer Text</div>
</body>
</html>
然后将“page.kid”中的“content”标记替换为您想要的任何数据:
<html py:layout="'base_layout.kid'"
xmlns:py="http://purl.org/kid/ns#">
<link py:def="page_specific_css()"
href="layout.css" type="text/css" rel="stylesheet" />
<div py:match="item.tag == 'content'">
<ul>
<li>Content Item 1</li>
<li>Content Item 2</li>
<li>Content Item 3</li>
</ul>
</div>
</html>
你可以检查你是否在python shell中获得了正确的html(在删除所有使用的标识符之后):
>>> import kid
>>> t = kid.Template("page.kid")
>>> print t.serialize()