将多个儿童模板文件嵌入到一个主模板文件中

发布于 2024-07-20 02:14:37 字数 102 浏览 6 评论 0原文

在主孩子模板文件中,我希望它只有 div 标签,每个标签只调用渲染的孩子文件并将内容粘贴到其中。 (就像 php 中的“include”函数)但我不知道该怎么做。 有人对此有什么想法吗?

In the main kid template file, I want it to have only div tags, each of which do only call a rendered kid file and paste content inside it. (like "include" function in php) but I don't know how to do this. Does someone have any ideas about it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的鱼塘能养鲲 2024-07-27 02:14:37

如果你交换到 genshi 而不是默认的 child,你可以使用 include 标签来做到这一点:

 <xi:include href="menu.html" />

交换到 genshi 相当容易,我认为这只是一个配置问题。 模板标签的工作方式在其他方面是相同的。 不过,您应该将扩展名从 .kid 重命名为 .html。

If you swap to genshi instead of the default kid you can do this with an include tag:

 <xi:include href="menu.html" />

Swapping to genshi is fairly easy, I think its a matter of confuration only. The templates tags works otherwise the same. You should rename the extensions from .kid to .html though.

世界等同你 2024-07-27 02:14:37

您可以首先定义一个“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()

You can first define a "base_layout.kid" template:

<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>

Then replace the "content" tag in "page.kid" with whatever data you want:

<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>

You can check whether you get the correct html in python shell (after removing all the identifiers used):

>>> import kid
>>> t = kid.Template("page.kid")
>>> print t.serialize()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文