在主要的孩子模板文件中,我希望它只有 div 标签,每个标签只调用渲染的孩子文件并在其中粘贴内容。(如 php 中的“包含”函数)但我不知道该怎么做。有人对此有任何想法吗?
Ple
问问题
225 次
2 回答
1
如果你换成 genshi 而不是默认的孩子,你可以使用包含标签来做到这一点:
<xi:include href="menu.html" />
切换到genshi相当容易,我认为这只是一个混乱的问题。模板标签的工作原理相同。不过,您应该将扩展名从 .kid 重命名为 .html。
于 2009-05-17T12:18:20.990 回答
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()
于 2009-07-17T06:08:00.110 回答