gpt4 book ai didi

python - 如何在扩展页面的 之前添加内容? ( child 模板)

转载 作者:太空宇宙 更新时间:2023-11-03 19:38:40 25 4
gpt4 key购买 nike

我有 master.kid(简化版):

<html>
<head py:match="item.tag == 'head'">
<title>My Site</title>
</head>
<body py:match="item.tag == 'body'">
<h1>My Site</h1>
<div py:replace="item[:]"></div>
<p id="footer">Copyright Blixt 2010</p>
</body>
</html>

还有 mypage.kid:

<html>
<head></head>
<body>
<p>Hello World!</p>
</body>
</html>

现在我希望能够在 </body> 之前添加更多内容生成的 HTML 中特定于 mypage.kid 的标记。

基本上结果应该是这样的:

<html>
<head>
<title>My Site</title>
</head>
<body>
<h1>My Site</h1>
<p>Hello World!</p>
<p id="footer">Copyright Blixt 2010</p>
<script type="text/javascript">alert('Hello World!');</script>
</body>
</html>

<script>标签应在 mypage.kid 中指定。如果我必须修改 master.kid 以可选支持 </body> 之前的其他内容,那也没关系。标签,但内容是什么必须在 mypage.kid 中指定。

起初我想在 </body> 之前添加一个元素master.kid 中的标签为 py:match="item.tag == 'bodyend'"会工作。问题是它使用 mypage.kid 中元素的位置,而不是执行 py:match 的元素的位置。 。所以如果我输入 <bodyend>之前的标签 </body>在mypage.kid中,它是在<p id="footer">之前导入的,如果我把它放在 </body> 下面它会留在那里。

如何设置 master.kid 和 mypage.kid 以支持在 </body> 之前添加内容标签?

最佳答案

我发现的最佳解决方案如下:

master.kid:

<html>
<head py:match="item.tag == 'head'">
<title>My Site</title>
</head>
<body py:match="item.tag == 'body'">
<h1>My Site</h1>
<div py:replace="item[:]"></div>
<p id="footer">Copyright Blixt 2010</p>
<div py:if="defined('body_end')" py:replace="body_end()"></div>
</body>
</html>

我的页面.kid:

<html>
<head></head>
<body>
<p>Hello World!</p>
<div py:def="body_end()" py:strip="True">
<script type="text/javascript">alert('Hello World!');</script>
</div>
</body>
</html>

master.kid 页面检查定义为 body_end 的变量,如果有这样的变量,就会调用它,替换 </body> 之前元素的内容(否则它不会输出任何内容)。

任何需要在</body>之前输出内容的页面将定义body_end函数使用 py:def="body_end()"py:strip="True"那里可以去掉包装<div> .

关于python - 如何在扩展页面的 </body> 之前添加内容? ( child 模板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com